【问题标题】:Get checkbox values using checkbox name using jquery使用 jquery 使用复选框名称获取复选框值
【发布时间】:2012-12-20 23:31:10
【问题描述】:

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

所以,我需要获取此复选框的每个值,并且我想用作选择器复选框名称,这不起作用,请帮助。

<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() );
   });

});

DEMO

【问题讨论】:

  • 您的代码将起作用,如果您删除名称参数中的 [] 意味着 bla[] 到 bla

标签: jquery html


【解决方案1】:

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

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

http://jsfiddle.net/26axX/

【讨论】:

  • 非常感谢,谢谢大家,我会接受这个答案:)
  • 添加 :checked 只查找选中的复选框 $("input[name='bla[]'] :checked").each( function () {
【解决方案2】:
$("input[name='bla[]']").each( function () {
    alert($(this).val());
});

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      您也应该包括括号。 . .

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

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

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

      【讨论】:

        【解决方案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());
                    }
                });
            }
        

        【讨论】:

          【解决方案6】:

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

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

          确保结束的]:checked 之间没有空格

          【讨论】:

          • 很高兴看到使用:checked 选择器并避免额外的if statement
          【解决方案7】:

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

          var list = $("input[name='bla[]']:checked").map(function () {
              return this.value;
          }).get();
          

          【讨论】:

          • 完美解决方案(y)+1
          【解决方案8】:
          $('[name="CheckboxName"]:checked').each(function () {
              // do stuff
          });
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-08-25
            • 2012-07-02
            • 2010-11-20
            • 2012-06-07
            • 2013-09-01
            • 2012-12-16
            • 1970-01-01
            相关资源
            最近更新 更多