Как проверить, все ли флажки class="abc"
установлены?
Мне нужно проверять это каждый раз, когда один из них отмечен или не отмечен. Я делаю это по щелчку или изменению?
Я думаю, что самый простой способ проверить это условие:
$('.abc:checked').length == $('.abc').length
Вы можете делать это каждый раз, когда ставится новый флажок:
$(".abc").change(function(){
if ($('.abc:checked').length == $('.abc').length) {
//do something
}
});
length
это не функция, я думаю, вы имели в виду ..size()
length
, но никогда не забываю, что это свойство, а не метод. Исправлено$('input.abc').not(':checked').length > 0
источник
$('input.abc').not(':checked').length === 0
.$someCollection.is(':checked').length
для других связанных тестов. Также см. Stackoverflow.com/questions/16576560 для заметок о дальнейшей оптимизации.Ты можешь использовать
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 .
источник
filter
хорошее решение для группы флажков, большое спасибо.$('.abc[checked!=true]').length == 0
источник
Часть 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) выше, вероятно, лучше.
источник
this
а неelement
избегать обратного вызова, требующего каких-либо явных параметров.Критерий поиска один из следующих:
input[type=checkbox].MyClass:not(:checked) input[type=checkbox].MyClass: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(); }
источник
В качестве альтернативы вы также можете использовать 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; } });
источник