2011-05-29 92 views
31
<input type="checkbox" name="options[]" value="1" /> 
<input type="checkbox" name="options[]" value="2" /> 
<input type="checkbox" name="options[]" value="3" /> 
<input type="checkbox" name="options[]" value="4" /> 
<input type="checkbox" name="options[]" value="5" /> 

我怎樣才能使用複選框的值檢查數組? (重要)我需要一個像[1,2,3,4,5]而不是像[「1」,「2」,「3」,「4」,「5」]的數組。
注意:大約有50個複選框。jquery多個複選框數組

有人可以幫助我嗎?請!

謝謝!

+0

可能出現[使數組中的所有選中的複選框]重複(http://stackoverflow.com/questions/590018/getting-all-selected-checkboxes-in-an-array) – Duvrai 2015-12-30 15:51:55

回答

62
var checked = [] 
$("input[name='options[]']:checked").each(function() 
{ 
    checked.push(parseInt($(this).val())); 
}); 
55

可以使用$.map()(甚至.map()一個jQuery對象上操作功能),以獲得檢測值的數組。一元(+)運算符將字符串轉換爲數值

var arr = $.map($('input:checkbox:checked'), function(e,i) { 
    return +e.value; 
}); 

console.log(arr); 

這裏的an example

+0

+1使用一元運算符。 – 2011-05-29 08:52:47

+4

+1這個答案比我的更優雅。 – Dormouse 2011-05-29 08:55:29

+0

感謝分享!你知道如何將選中的值添加到輸入不是跨度嗎?我嘗試了'$('#test')。val(arr.join(','));' – CyberJunkie 2011-05-29 21:50:30

2
var checkedString = $('input:checkbox:checked.name').map(function() { return this.value; }).get().join(); 
2

如果你有一個類爲每個輸入框,那麼你就可以做到這一點作爲

 var checked = [] 
     $('input.Booking').each(function() 
     { 
      checked.push($(this).val()); 
     });