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

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

每次检查或者不检查的时候我都要检查一下。我是点击操作还是改变操作?

121147 次浏览

你问题的第一部分:

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

编辑:

(以上答案)可能更好。

你可以使用 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上的代码示例。

$('input.abc').not(':checked').length > 0
$('.abc[checked!=true]').length == 0

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

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

您可以在每次选中一个新的复选框时执行此操作:

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

搜索标准如下:

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

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

或者,您也可以使用 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;
}
});

类独立解

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

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

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

我用了这个代码,效果很好。

if($('.abc:checked').length < 1) {
alert('No checkbox is selected.');
return false;
} else {
alert($('.abc:checked').length+' checkboxes have been selected')
}