嗨,我正在开发一个jquery应用程序,其中有一个选择的dropdownlistbox和gridview。gridview的第一列包含复选框,顶部还包含“全部选中”按钮。例如,如果我检查gridview内的3行,那么我需要禁用dropdownlistbox中的相应值。我正在尝试如下。这是从gridview获取所有已检查值的代码。
var checkedValues = [];
$("#<%=gdvRegretletter.ClientID %> tr").each(function () {
if($(this).closest('tr').find('input[type="checkbox"]').prop('checked', true))
{
checkedValues += $(this).val();
}
});
一旦我得到数组中的值,当我进入下拉菜单时,我就会看到以下代码。
$('.limitedNumbSelect').change(function (e) {
$("#limitedNumbSelect > option").each(function () {
//if (this.value == checkedValues) If this.value is equal to any value from checkedValues then i want to hide that value inside dropdownlistbox.
// Here i want to hide all values of checkedValues array(values will be same in dropdownlistbox)
});
});
我尝试如下。
$('.limitedNumbSelect').change(function (e) {
var checkedValues = [];
$("#<%=gdvRegretletter.ClientID %> tr").each(function () {
if ($(this).closest('tr').find('input[type="checkbox"]').prop('checked', true)) {
checkedValues.push($(this).closest('tr').find('td:eq(2)').text().trim());
}
});
$(".limitedNumbSelect > option").each(function () {
var val = $(this).val();
alert(val);
var display = checkedValues.indexOf(val) === -1;
$(this).toggle(display);
$('.limitedNumbSelect option[value=' + display + ']').hide();
$(".limitedNumbSelect").find('option:contains(' + display + ')').remove().end().chosen();
});
});
在上面的代码中,有一个错误。例如,如果我从gridview中选择一个值,那么如果我单击下拉列表,则能够选择该值(第一次单击)。第二次单击时,所需值将隐藏。
上面的代码不起作用。数组checkedValues不能捕获值。
我不知道该写些什么。任何帮助,将不胜感激。谢谢你。
尝试这样的事情:
$('.limitedNumbSelect').change(function (e) {
$("#limitedNumbSelect > option").each(function () {
var val = $(this).val();
var display = checkedValues.indexOf(val) === -1;
$(this).toggle(display);
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句