【问题标题】:JQuery checkbox loopJQuery 复选框循环
【发布时间】:2010-09-27 12:49:22
【问题描述】:

给定一个表单 (id = "my_form"),我如何遍历表单的所有复选框,检查给定的复选框是否被选中并获取其名称/值?

我知道如何在给定值的情况下检查复选框状态,但我需要在事先不知道存在哪些复选框的情况下循环。谢谢。

【问题讨论】:

    标签: javascript jquery checkbox


    【解决方案1】:

    示例: http://jsfiddle.net/C6Kau/

    $('#my_form :checkbox').each(function(){
         if( this.checked ) {
              alert( 'checked: ' + this.name + ' ' + this.value );
         } else {
              alert( 'Not checked: ' + this.name + ' ' + this.value );
         }
    });
    

    【讨论】:

      【解决方案2】:

      以下代码将遍历所有选中的复选框。

      $(':checkbox', '#my_form').filter(':checked').each(function(){
          var name = $(this).val();
      });
      

      【讨论】:

      • TypeError: Object false has no method 'each'...这是由于 is() 没有返回 this。
      • @AutoSponge:这是因为 is() 针对选择器测试集合并返回布尔值(true 或 false)。出于此答案的目的,应使用 filter() 而不是 is()。
      【解决方案3】:
      var box, boxes = $('#myform :checkbox'), i = boxes.length;
      
      while (i--) {
          box = boxes[i];
          if (box.checked) {
              alert ("I'm checked");
          } else {
              alert ("I'm not checked");
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-24
        • 2017-09-01
        相关资源
        最近更新 更多