Проверьте, выбраны ли все флажки

Как проверить, выбраны ли все флажки с помощью class="abc"?

Мне нужно проверять его каждый раз, когда один из них проверяется или отменяется. Я делаю это при нажатии или изменении?

Ответ 1

Я думаю, что самый простой способ - проверить это условие:

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

Вы можете делать это каждый раз, когда установлен новый флажок:

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

Ответ 2

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

Ответ 3

Вы можете использовать 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.

Ответ 4

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

Ответ 5

Часть 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) выше, вероятно, лучше.

Ответ 6

Критерии поиска - один из следующих:

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

Вероятно, вы хотите подключиться к событию изменения.

Ответ 7

В качестве альтернативы вы также могли бы использовать каждый():

// 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;
    }
});