检查是否已选中所有复选框

san*_*nta 132 jquery

如何检查是否选中了所有复选框class="abc"?

我每次检查或取消选中其中一个时都需要检查它.我是否点击或更改?

cbr*_*ino 246

我认为最简单的方法是检查这种情况:

$('.abc:checked').length == $('.abc').length
Run Code Online (Sandbox Code Playgroud)

每次选中新复选框时都可以执行此操作:

$(".abc").change(function(){
    if ($('.abc:checked').length == $('.abc').length) {
       //do something
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 谢谢@TheSuperTramp!我的意思是"长度",但我永远不会忘记它是属性而不是方法.更正 (3认同)
  • `length`不是函数,我认为你的意思是..`size()` (2认同)

Por*_*rco 92

$('input.abc').not(':checked').length > 0
Run Code Online (Sandbox Code Playgroud)

  • 那个答案不正确。它检查是否有任何复选框被选中。但问题是_检查是否选择了**所有**复选框_。所以正确的代码是:`$('input.abc').not(':checked').length === 0`。 (3认同)
  • 完美,干净,优雅的解决方案."if($('input.abc').not(":checked").length){...}"也有效. (2认同)

Mar*_*man 14

您可以使用 change()

$("input[type='checkbox'].abc").change(function(){
    var a = $("input[type='checkbox'].abc");
    if(a.length == a.filter(":checked").length){
        alert('all checked');
    }
});
Run Code Online (Sandbox Code Playgroud)

所有这一切都将验证.abc复选框的总数是否与总数相匹配.abc:checked.

关于jsfiddle的代码示例.


man*_*nji 5

$('.abc[checked!=true]').length == 0
Run Code Online (Sandbox Code Playgroud)