-2

所以我在表格中有这样的东西

<input type="checkbox" name="arr" value="A" />A
<input type="checkbox" name="arr" value="B" />B
<input type="checkbox" name="arr" value="C" />C
<input type="checkbox" name="arr" value="D" />D
<input type="checkbox" name="arr" value="E" />E
...
<more checkboxes here>
...

在我的 Javascript 中,我想创建一个包含选中框的值的数组。因此,如果选中 B 和 D,则应该是[B, D].

谢谢

编辑:我不包括 jQuery 标签,但删除他的答案的人给了我一个使用 jQuery 的不错且简短的工作解决方案:

var valueArray = $('input[type="checkbox"][name="arr"]:checked').map(function() {
    return this.value;
}).get();
4

2 回答 2

1

根据您使用它的目的,只需使用name="arr[]". 提交表单时,服务器端会自动将选中的复选框值转换为数组。

但是,如果您尝试纯粹在客户端 JavaScript 中获取此数组,则涉及更多。试试这个:

function getCheckedBoxes(name) {
    if( document.querySelectorAll) {
        var qsa = document.querySelectorAll("input[type=checkbox][name='"+name+"']"),
            l = qsa.length, i, out = [];
        for( i=0; i<l; i++) if( qsa[i].checked) out.push(qsa[i].value);
    }
    else {
        var qsa = document.getElementsByTagName('input'), l = qsa.length, i, out = [];
        for( i=0; i<l; i++) {
            if( qsa[i].type == 'checkbox' && qsa[i].name == name && qsa[i].checked)
                out.push(qsa[i].value);
        }
    }
    return out;
};
于 2013-02-20T16:05:58.087 回答
0

你可以像这样使用jquery:

$("input[type=checkbox][name=arr][checked]").each( 
    function() { 
       // collect the values
    } 
);
于 2013-02-20T15:58:45.957 回答