[jquery] 모든 확인란이 선택되어 있는지 확인

확인란이 모두 선택되어 있는지 어떻게 확인 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;
  }
});

편집하다:

위의 답변 (http://stackoverflow.com/questions/5541387/check-if-all-checkboxes-are-selected/5541480#5541480)이 더 좋습니다.


답변

검색 기준은 다음 중 하나입니다.

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