0

我陷入了一个非常愚蠢的问题。我正在尝试选择我使用表中的循环动态创建的所有复选框。在表格的头部我有一个复选框,我想在点击头部的复选框后选择表格中的所有复选框。这是我的代码。

    <table>
      <thead>
        <tr>
        <th class="spacer_100 align_ctr tooltip_trigger">
        Change Status <input type="checkbox" name="sample" onclick="selectAll()">
        </th>
        </tr>
      </thead>
      <tbody>

          <?php foreach ($users as $user) { ?>
          <tr>
          <td class="align_ctr" style="text-align: center">
           <input type="checkbox" name="current_status[]" value="1"/>
          </td>
          </tr>
          <?php } ?> 
      </tbody>
     </table>

这是javascript代码:

    function selectAll() {
      var checkboxes = document.getElementsByTagName("input");
       for(var i=1; i<checkboxes.length;i++) {
        if (checkboxes[i].type == 'checkbox') {
        checkboxes[i].checked = 'true';
       }
      }
     }

我不知道这段代码有什么问题,我无法选择复选框。

谢谢

4

2 回答 2

0

它工作正常,但你的代码:

var checkboxes = document.getElementsByTagName("input");

也选择主复选框,尝试执行以下操作:

var checkboxes = document.getElementsByTagName("input");
for(var i=0; i<checkboxes.length;i++) { //start from 0
    if (checkboxes[i].type == 'checkbox' && checkboxes[i].name == 'current_status[]') {
        checkboxes[i].checked = 'true';
    }
}
于 2013-08-05T03:16:30.890 回答
0

试试这个代码怎么样?

改成

 Change Status <input type="checkbox" name="sample" onclick="selectAll(this)">

和以下功能

function SelectAll(CheckBoxControl){
    var i;
    for (i=0; i < document.forms[0].elements.length; i++){
       if ((document.forms[0].elements[i].type == 'checkbox') &&  
         (document.forms[0].elements[i].name.indexOf('current_status[]') > -1)){
         document.forms[0].elements[i].checked = CheckBoxControl.checked;
       }
    }
}
于 2013-08-05T04:01:19.887 回答