-1

我需要确定是否在客户端未选中 CheckBoxList 中的任何复选框(重复选中),以便我可以使用 JQuery 将顶部的“全选”选项更改为选中/未选中。

其他操作(选中/取消选中所有选项和取消选中“全选”检查的任何选项)都可以正常工作,但最好让“全选”反映所有其他复选框的状态。

假设我已经有var cbs = $('#myCheckBoxList :checkbox')什么我必须应用到它来找到选择 == false 的任何复选框?

我找到的所有示例都是关于查找单个复选框的选中状态,但我需要知道是否有任何未选中。

尝试过cbs.find(':[checked="false"]')等,但我找不到find()仅按属性过滤的好例子。

我正在编写的全选切换行为的完整代码

(包括从下面Chandu的答案得出的最终解决方案):

    $(window).load(function () {
        var cbs = $('.myCheckBoxList :checkbox');
        cbs.eq(0).click(function () {
            var toggle = this.checked;
            cbs.attr('checked', toggle);
        });
        cbs.slice(1).click(function () {
            if (!this.checked) {
                cbs.eq(0).attr('checked', false);
            } else {
                cbs.eq(0).attr('checked', cbs.slice(1).filter(':not(:checked)').length == 0);
            }
        });
    });
4

2 回答 2

4

您需要将:not选择器与:checked

尝试这个:

cbs.find(':not(:checked)')

cbs.filter(':not(:checked)')

或者

$('#myCheckBoxList :not(:checked)')
于 2012-07-06T12:35:32.477 回答
0

试试这个

$('#myCheckBoxList input:not(:checked)')

有关更多信息,请检查notchecked选择器

于 2012-07-06T12:35:50.210 回答