49

我有几个输入复选框,(它们的名称与服务器上的发送数组相同)。

所以,我需要得到这个复选框的每个值,我想用作选择器复选框的名称,这不起作用,请帮忙。

<form>
  <input type="checkbox" name="bla[]" value="1" />
  <input type="checkbox" name="bla[]" value="2" />
</form>

js:

$(document).ready( function () {    

   $("input[name=bla]").each( function () {
       alert( $(this).val() );
   });

});

演示

4

8 回答 8

75

您正在选择具有 name 属性的"bla"输入,但您的输入具有"bla[]"name 属性。

$("input[name='bla[]']").each(function (index, obj) {
        // loop all checked items
    });

http://jsfiddle.net/26axX/

于 2013-01-07T08:51:23.647 回答
14

您还应该包括括号。. .

<input type="checkbox" name="bla[]" value="1" />

因此引用它应该是name='bla[]'

$(document).ready( function () { 

   $("input[name='bla[]']").each( function () {
       alert( $(this).val() );
   });

});
于 2013-01-07T08:54:55.107 回答
14

如果您想获取选中复选框的所有值的列表(例如,在一次 AJAX 调用中将它们作为列表发送到服务器),您可以通过以下方式获取该列表:

var list = $("input[name='bla[]']:checked").map(function () {
    return this.value;
}).get();
于 2017-09-07T11:31:14.300 回答
9
$('[name="CheckboxName"]:checked').each(function () {
    // do stuff
});
于 2017-12-01T12:44:53.623 回答
8

我想补充一点,如果您尝试获取已选择的具有该名称的所有复选框,您将需要使用以下语法:

$("[name='bla[]']:checked").each(function () {
    // do stuff
});

]确保关闭和关闭之间没有空格:checked

于 2016-02-23T21:31:02.070 回答
5
$("input[name='bla[]']").each( function () {
    alert($(this).val());
});
于 2013-01-07T08:51:33.877 回答
5

// 使用复选框名称获取复选框值

<head>
        <script>
        function getCheckBoxValues(){
            $('[name="checkname"]').each( function (){
                alert($(this).val());
            });
        }
        </script>
    </head>
    <body>
        <input type="checkbox" name="checkname" value='1'/>
        <input type="checkbox" name="checkname" value='2'/>
        <input type="checkbox" name="checkname" value='3'/>
        <input type="button" value="CheckBoxValues" onclick="getCheckBoxValues()"/>
    </body>

// 只获取被检查的值

function getCheckBoxValues(){
        $('[name="checkname"]').each( function (){
            if($(this).prop('checked') == true){
                alert($(this).val());
            }
        });
    }
于 2016-02-04T07:10:56.167 回答
4

就像已经说过几次一样,您需要将选择器更改为

$("input[name='bla[]']")

但我想补充一点,在选择器中使用 [] 时必须使用单引号或双引号。

于 2013-01-07T08:53:40.190 回答