【问题标题】:How to check multiple checkboxes with JavaScript?如何使用 JavaScript 检查多个复选框?
【发布时间】:2014-06-04 04:42:18
【问题描述】:

我有多个复选框

<div class="data">    
    <span>
    <input name="employee" type="checkbox" value="Alex"/>
    <label for="employee">Alex</label>
    </span> 

    <span>
    <input name="employee" type="checkbox" value="Frank"/>
    <label for="employee">Frank</label>
    </span>    

    <span>
    <input name="employee" type="checkbox" value="Mark"/>
    <label for="employee">Mark</label>
    </span>
</div>

如何找到所有选中的复选框并创建带有检查结果的json或数组?

【问题讨论】:

    标签: javascript arrays checkbox


    【解决方案1】:

    如果你只想使用纯/香草 JS,这里有一个例子:

    HTML 头部

    <script type="text/javascript">
    function getCheckedCheckboxesFor(checkboxName) {
        var checkboxes = document.querySelectorAll('input[name="' + checkboxName + '"]:checked'), values = [];
        Array.prototype.forEach.call(checkboxes, function(el) {
            values.push(el.value);
        });
        return values;
    }
    </script>
    

    HTML 正文

    <div class="data">    
        <span>
        <input name="employee" type="checkbox" value="Alex"/>
        <label for="employee">Alex</label>
        </span> 
    
        <span>
        <input name="employee" type="checkbox" value="Frank"/>
        <label for="employee">Frank</label>
        </span>    
    
        <span>
        <input name="employee" type="checkbox" value="Mark"/>
        <label for="employee">Mark</label>
        </span>
    
        <input type="button" onclick="alert(getCheckedCheckboxesFor('employee'));" value="Get Values" />
    </div>
    

    JS Fiddle 链接:http://jsfiddle.net/dY372/

    【讨论】:

      【解决方案2】:

      试试这个: Fiddle

      jQuery:

      var selected = [];
      $('.data input:checked').each(function() {
          selected.push($(this).val());
      });
      

      Javascript:

      var checkboxes = document.getElementsByName('employee');
      var selected = [];
      for (var i=0; i<checkboxes.length; i++) {
          if (checkboxes[i].checked) {
              selected.push(checkboxes[i].value);
          }
      }
      

      【讨论】:

      • 如果复选框在分页上呢?如何检查它是否被检查?
      【解决方案3】:

      使用querySelectorAll:

      var checked = document.querySelectorAll('[name="employee"]:checked');
      

      支持:IE9+。

      【讨论】:

        【解决方案4】:
        var elements=document.getElementsByName('employee');
        

        应该返回你需要的元素数组

        DEMO

        【讨论】:

          【解决方案5】:
          function checked(){
          
              var items=getElementsByname('checkbox');
          
              var selectedlist=[];
          
              for(var i=0; i<items.length; i++)       
              {
                  if(items[i].type=='checkbox' && items[i].checked==true)                 
                      selectedlist+=items[i].value+"\n";
              }
          
              alert(selectedlist);
          }
          

          【讨论】:

            猜你喜欢
            • 2015-07-28
            • 2023-03-09
            • 2017-06-13
            • 1970-01-01
            • 2015-10-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多