Как проверить, выбраны ли все флажки с помощью class="abc"
?
Мне нужно проверять его каждый раз, когда один из них проверяется или отменяется. Я делаю это при нажатии или изменении?
Как проверить, выбраны ли все флажки с помощью class="abc"
?
Мне нужно проверять его каждый раз, когда один из них проверяется или отменяется. Я делаю это при нажатии или изменении?
Я думаю, что самый простой способ - проверить это условие:
$('.abc:checked').length == $('.abc').length
Вы можете делать это каждый раз, когда установлен новый флажок:
$(".abc").change(function(){
if ($('.abc:checked').length == $('.abc').length) {
//do something
}
});
$('input.abc').not(':checked').length > 0
Вы можете использовать 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.
$('.abc[checked!=true]').length == 0
Часть 1 вашего вопроса:
var allChecked = true;
$("input.abc").each(function(index, element){
if(!element.checked){
allChecked = false;
return false;
}
});
EDIT:
Ответ (http://stackoverflow.com/questions/5541387/check-if-all-checkboxes-are-selected/5541480#5541480) выше, вероятно, лучше.
Критерии поиска - один из следующих:
input[type=checkbox].MyClass:not(:checked)
input[type=checkbox].MyClass:checked
Вероятно, вы хотите подключиться к событию изменения.
В качестве альтернативы вы также могли бы использовать каждый():
// 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;
}
});