您好我正在开发一个jquery应用程序,我有一个选择的dropdownlistbox和gridview。 gridview的第一列包含复选框,在顶部它还包含check all按钮。例如,如果我在gridview中检查3行,那么我需要禁用dropdownlistbox中的相应值。我正在尝试如下。 这是从gridview获取所有cheked值的代码。
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不会捕获值。
我无法弄清楚要在里面写些什么。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:1)
尝试这样的事情:
$('.limitedNumbSelect').change(function (e) {
$("#limitedNumbSelect > option").each(function () {
var val = $(this).val();
var display = checkedValues.indexOf(val) === -1;
$(this).toggle(display);
});
});
答案 1 :(得分:0)
替换行:
checkedValues += $(this).val();
在这一行:
checkedValues.push($(this).val());