2010-11-22 51 views

回答

2

爲什麼在每一次點擊這個工作,只是做的表單提交時 - 有一個:檢查選擇,你也可以使用,而不是選擇和迭代的元素,你不感興趣

由於jyoseph建議 - 你可以使用連載陣在這裏建一個名稱/值數組

$('#submitButton').click(function(ev){ 

    var ids = []; 

    $(':checkbox:checked').each(function(){ 

     ids.push(this.id); 

    }); 

    //do something with ids 

}); 
2

後來命名空間既然你遍歷所有每次複選框,只是在開始時清空數組,並且只將檢查的項目放回:

ids = []; 

if (this.checked) {  
    ids.push(this.id); 
} 
+0

我希望你不要介意,我用更高效的`this.checked`和`$(this).attr(「id」)替換`$(this).is(「:checked」 )`更有效的`this.id`。 OP的代碼有一個小錯誤,我也修正了。 +1爲您的答案。 – 2010-11-22 15:38:43

+0

這很好 - 感謝您修復它。 – Jon 2010-11-22 15:39:01

1

我認爲您可能會對jQ uery serializeArray()(api link

$('#myForm input[type=checkbox]').change(function(){ 

    // get all checked checkboxes 
    var ids = $('myForm input[type=checkbox]:checked').serializeArray(); 

}); 

編輯:JSBin example