如何确定在HTML表单中选中哪些复选框?

时间:2012-04-07 02:38:52

标签: javascript html function checkbox

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

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

var checkedBoxes = [];

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

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

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

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