0

如何使用 JavaScript 中的 onclick 将数组中的复选框值传递给函数。以下是我的html代码。请注意,我不使用表单标签。仅使用输入标签。

 <input id="a"name="a" type="checkbox" value="1" checked="checked" >A</input>
 <input id="a"name="a" type="checkbox" value="2" checked="checked" >B</input>
 <input id="a"name="a" type="checkbox" value="3" checked="checked" >C</input>
<button onclick="send_query(????)">CLICK</button>

以下是我的 JavaScript 函数

function send_query(check) {
var str = "";
    for (i = 0; i < check.length; i++) {

        if (check[i].checked == true) {
            str = str + check[i];
        }
 console.log(str);

}
4

3 回答 3

3

您可以为按钮编写一个 onclick 处理程序,它可以创建一个单击复选框值的数组,然后send_query使用参数调用 ,如下所示

<button onclick="onclickhandler()">CLICK</button>

然后

function onclickhandler() {
    var check = $('input[name="a"]:checked').map(function () {
        return this.value;
    }).get();
    console.log(check);
    send_query(check)
}

注意:我还建议使用 jQuery 来注册点击处理程序,而不是使用内联onclick处理程序

注意:ID元素在文档中也必须是唯一的......您有多个带有 id 的元素a,我没有看到您在任何地方使用该 id 所以您可能会删除它

于 2013-10-23T11:24:14.297 回答
0

使用纯 JavaScript(演示)(仅使用 Chrome 测试)。

HTML:

<button onclick="send_query(document.getElementsByTagName('input'))">

Javascript:

function send_query(check) {
    var values = [];
    for (i = 0; i < check.length; i++) {
        if (check[i].checked == true) {
            values.push(check[i].value);
        }
    }
    console.log(values.join());
}
于 2013-10-23T11:55:31.033 回答
0

尝试这个

<form name="searchForm" action="">
    <input type="checkbox" name="categorySelect[]" id="1"/>
    <input type="checkbox" name="categorySelect[]" id="2" />
    <input type="checkbox" name="categorySelect[]" id="3"/>
    <input type="button" value="click" onclick="send_query();"/>
</form>

JS

function send_query() {
var check = document.getElementsByName('categorySelect[]');
var selectedRows = [];
for (var i = 0, l = check.length; i < l; i++) {
    if (check[i].checked) {
        selectedRows.push(check[i]);
    }
}

alert(selectedRows.length);
}
于 2013-10-23T11:27:32.170 回答