<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个复选框。
有人能帮助我吗?请!
谢谢!
答案 0 :(得分:69)
var checked = []
$("input[name='options[]']:checked").each(function ()
{
checked.push(parseInt($(this).val()));
});
答案 1 :(得分:58)
您可以使用$.map()
(甚至是对jQuery对象运行的.map()
函数)来获取已检查值的数组。一元(+)运算符将字符串转换为数字
var arr = $.map($('input:checkbox:checked'), function(e,i) {
return +e.value;
});
console.log(arr);
答案 2 :(得分:2)
var checkedString = $('input:checkbox:checked.name').map(function() { return this.value; }).get().join();
答案 3 :(得分:2)
如果您的每个输入框都有一个类,那么您可以将其作为
var checked = []
$('input.Booking').each(function ()
{
checked.push($(this).val());
});
答案 4 :(得分:0)
可以重用的全局函数:
function getCheckedGroupBoxes(groupName) {
var checkedAry= [];
$.each($("input[name='" + groupName + "']:checked"), function () {
checkedAry.push($(this).attr("id"));
});
return checkedAry;
}
其中groupName是复选框组的名称,在您的示例中为:'options []'
答案 5 :(得分:0)
通过这种方式,您可以在选中或取消选中名为options[]
的任何复选框时添加或删除值:
var checkedValues = [];
$("input[name='options[]']").change(function() {
const intValue = parseInt($(this).val());
if ($(this).is(':checked')) {
checkedValues.push(value);
} else {
const index = checkedValues.indexOf(value);
if (index > -1) {
checkedValues.splice(index, 1);
}
}
});
答案 6 :(得分:0)
纯 javascript 答案
const checked = Array.from(
document.querySelectorAll(`input[name=myCheckboxGroup]:checked`)).map(node=>node.value);