我的HTML表单中有11个复选框,并且已经在我的onclick函数中有一个部分来确定它们中有多少被检查,但我希望能够分辨出哪些复选框被选中,并且可能只是添加其中的一个复选框通过id / value等检查到arraylist。
编辑:(固定代码..?)
var formobj = document.forms[0];
var ingNum = 0;
checked = [];
for (var j = 0; j < formobj.elements.length; j++) {
if (formobj.elements[j].type == "checkbox" && formobj.elements[j].checked) {
ingNum++;
checked.push(formobj.elements[j].value);
}
}
答案 0 :(得分:3)
如果您要将已检查的属性转换为value
属性数组(如果id
属性,将value
与id
交换),则可以使用..
var inputs = document.getElementById('your-form').getElementsByTagName('input'),
checked = [];
for (var i = 0, length = inputs.length; i < length; i++) {
if (inputs[i].type == 'checkbox' && inputs[i].checked) {
checked.push(inputs[i].value);
}
}
这适用于您可能关心的任何旧IE。
如果您只支持较新的浏览器,可以使用...
var checked = [].slice.call(document
.querySelectorAll('#your-form input[type="checkbox"]'))
.filter(function(checkbox) {
return checkbox.checked;
})
.map(function(checkbox) {
return checkbox.value;
});
如果您使用的是jQuery这样的库,那就更简单......
var checked = $('#your-form :checkbox:checked')
.map(function() {
return this.value;
})
.get();
答案 1 :(得分:0)
var checkedBoxes = [];
$("input:checked").each(function() {
checkedBoxes.push($(this));
});
实际上,我认为你可以这样做:
var checkedBoxes = $("input:checked");
但我不能100%确定是否有效。