如何选中是否选中了class="abc"
的所有复选框?
每次检查或取消选中其中一个时,我都需要检查它。我是单击还是更改?
答案 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;
}
});