2012-09-20 3 views
1

에 반환하지?배열의 길이는 0

Checkbox 1, checked = array.length = 1 
Checkbox 2, checked = array.length = 2 
Checkbox 2, unchecked = array.length = 2 
Checkbox 1, unchecked = array.length = 1 (not 0???) 

어떤 아이디어 것은 무엇을 잘못 될 수 있습니다 여기에 결과는?

+5

배열에서 항목을 팝하는 코드를 게시하십시오. –

+1

나 또는 확인란을 선택 취소하면 array.length가 감소하지 않습니까? –

+0

'var attributes = [];'는 배열을 다시 초기화합니까? 그렇지 않아? 클릭 할 때마다 '0'길이를 가짐을 의미합니다. 따라서 감소는 필요하지 않습니다. – Dev

답변

1

문제는 모든 체크 된 체크 박스를 실행하고 promo-on-total div의 길이 값을 업데이트하는 것이지만 모든 체크 박스를 선택 취소하면 루프가 더 이상 실행되지 않으므로 값이 업데이트되지 않습니다.

이것은 당신이 내가 생각하는 기대를 줄 것이다 :

$('input:checkbox[name="promoOn[]"]').click(function(){ 
    var checkedValues = []; 
    $('input:checkbox[name="promoOn[]"]:checked').each(function(index) { 
    checkedValues.push($(this).val()); 
    }); 

    $('#promo-on-total').html(checkedValues.length);   
}); 

DEMO

+0

완벽, 고마워. – squeaker

+0

여러분을 환영합니다! – Asciiom

0

내가 더 나은 것이 코드로 생각한다. 당신이 체크 박스, $ ('체크 박스 [이름 = "promoOn는 []"] : 입력 체크') 선택 해제 할 때

$('input:checkbox[name="promoOn[]"]').click(function(){ 
    $('#promo-on-total').html($('input:checkbox[name="promoOn[]"]:checked').size()); 
}); 

문제는 오는 비어 때문에 HTML 콘텐츠 $ ('# 프로모션 - 온 - 총 ')는 업데이트되지 않습니다.

저는 here입니다.