使用onclick通过javascript检查复选框?

时间:2013-08-05 01:34:25

标签: javascript

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

    <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';
       }
      }
     }

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

由于

2 个答案:

答案 0 :(得分: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';
    }
}

答案 1 :(得分: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;
       }
    }
}