2011-05-29 72 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()); 
     });