1

我的 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);
        }
    } 
4

2 回答 2

3

如果要将检查的那些转换为其value属性数组(如果属性,则与id交换),您可以使用...valueid

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();
于 2012-04-07T02:42:43.643 回答
0
var checkedBoxes = [];

$("input:checked").each(function() {
    checkedBoxes.push($(this));
});

实际上,我认为您可以这样做:

var checkedBoxes = $("input:checked");

但我不是 100% 确定这是否有效。

于 2012-04-07T02:41:35.877 回答