【问题标题】:Get dynamic checkbox values with jQuery使用 jQuery 获取动态复选框值
【发布时间】:2012-06-07 01:58:12
【问题描述】:

我无法获取动态复选框的选中值。我究竟做错了什么? http://jsfiddle.net/hxfsB/17/

标记:

<html>
    <body>
      one<input type="checkbox" name='checkbox0' value="one_name" checked>
     two<input type="checkbox" name='checkbox1' value="one_name1">
     three<input type="checkbox" name='checkbox2' value="one_name2">
         <input type="button" id="envoyer" value="Envoyer Reponse"  /> 
    </body>
</html>

Javascript:

$('#envoyer').click(function(e){
    var myArray=new Array(4);
    for ( var j = 0; j < 3; j++){ 
        var check=$('input:checkbox[name=checkbox'+j+']').is(':checked');
        if(check==true)
            myArray[j]=$('input:checkbox[name=checkbox'+j+']').val();
    }
    alert('check '+" "+myArray[i]);
});

【问题讨论】:

  • 在开发者工具中查看浏览器的 JavaScript 控制台。

标签: javascript jquery checkbox


【解决方案1】:

在警报中输出myArray 时出错(未定义i 变量)。

但是,您的代码可以有更好的结构。这是一种解决方案:

$("#envoyer").click(function(e) {
    var myArray = [];
    $(":checkbox:checked").each(function() {
        myArray.push(this.value);
    });

    alert("Checked: " + myArray.join(","));
});​

演示: http://jsfiddle.net/hxfsB/25/

【讨论】:

    【解决方案2】:

    你有一个Uncaught ReferenceError: i is not defined;我在这里更新了你的小提琴:

    http://jsfiddle.net/hxfsB/24/

    $('#envoyer').click(function(e){
        var myArray = new Array(3);
        for ( var j = 0; j < 3; j++) { 
            var check=$('input:checkbox[name=checkbox'+j+']').is(':checked');
            if(check==true)
                myArray[j]=$('input:checkbox[name=checkbox'+j+']').val();
    
            // Alert Current Selection //
            alert('check ' + " " + myArray[j] );
        }    
    });
    

    记住:undefined 表示未选中复选框。

    我希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      按照你的标题建议,如果你想获得选中的复选框值,你可以这样做,

      Javascript:

      $('#envoyer').click(function(e){
          $('input[type="checkbox"]:checked').each(function(){
              alert(this.value);
          })        
      })​
      

      标记

      <html>
          <body>
            one<input type="checkbox" name='checkbox0' value="one_name" checked>
            two<input type="checkbox" name='checkbox1' value="one_name1">
            three<input type="checkbox" name='checkbox2' value="one_name2">
              <input type="button" id="envoyer" value="Envoyer Reponse"  /> 
          </body>
      </html>
      

      【讨论】:

        【解决方案4】:

        试试这个:http://jsfiddle.net/hxfsB/27/

        选择器有问题

        【讨论】:

          【解决方案5】:
          $('#envoyer').click(function(e){
              var myArray=new Array(3);
          
              $('input[type=checkbox]:checked').each(function(i) {
                 myArray[i] = $(this).val();
                 //alert($(this).val());
              });
          }​);​
          

          【讨论】:

            【解决方案6】:

            myArray[i] 中的 i 在任何地方都不存在。您需要将警报放在 for 循环中并使用 myArray[j] 或使用 i 创建一个新的 for 循环

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-08-25
              • 2018-09-15
              • 1970-01-01
              • 2021-07-01
              • 2019-08-05
              • 2014-08-06
              • 2016-12-13
              相关资源
              最近更新 更多