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

时间:2011-04-04 16:24:04

标签: jquery

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

每次检查或取消选中其中一个时,我都需要检查它。我是单击还是更改?

9 个答案:

答案 0 :(得分:228)

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

$('.abc:checked').length == $('.abc').length

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

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

答案 1 :(得分:86)

$('input.abc').not(':checked').length > 0

答案 2 :(得分:13)

您可以使用change()

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

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

jsfiddle上的代码示例。

答案 3 :(得分:4)

$('.abc[checked!=true]').length == 0

答案 4 :(得分:3)

问题的第1部分:

var allChecked = true;
$("input.abc").each(function(index, element){
  if(!element.checked){
    allChecked = false;
    return false;
  } 
});

编辑:

上面的答案(http://stackoverflow.com/questions/5541387/check-if-all-checkboxes-are-selected/5541480#5541480)可能更好。

答案 5 :(得分:1)

搜索条件是以下之一:

input[type=checkbox].MyClass:not(:checked)
input[type=checkbox].MyClass:checked

您可能想要连接到更改事件。

答案 6 :(得分:1)

独立于课程的解决方案

var checkBox = 'input[type="checkbox"]';
if ($(checkBox+':checked').length == $(checkBox).length) {
   //Do Something
}

答案 7 :(得分:1)

这是我在代码中实现的方法:

if($('.citiescheckbox:checked').length == $('.citiescheckbox').length){
    $('.citycontainer').hide();
}else{
    $('.citycontainer').show();
}

答案 8 :(得分:0)

或者,您也可以使用every():

// Cache DOM Lookup
var abc = $(".abc");

// On Click
abc.on("click",function(){

    // Check if all items in list are selected
    if(abc.toArray().every(areSelected)){
        //do something
    }

    function areSelected(element, index, array){
        return array[index].checked;
    }
});