Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用onclick by javascript选中复选框?_Javascript - Fatal编程技术网

使用onclick by javascript选中复选框?

使用onclick by javascript选中复选框?,javascript,Javascript,我陷入了一个非常愚蠢的问题。我正在尝试选择使用表中的循环动态创建的所有复选框。在表格的标题中,我有一个复选框,我想在点击标题中的复选框后选中表格中的所有复选框。 这是我的密码 <table> <thead> <tr> <th class="spacer_100 align_ctr tooltip_trigger"> Change Status <input type="che

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

    <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';
       }
      }
     }
函数selectAll(){
var复选框=document.getElementsByTagName(“输入”);

对于(var i=1;i它工作正常,但您的代码:

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';
    }
}
var复选框=document.getElementsByTagName(“输入”);

对于(var i=0;i试试这个代码怎么样

改为

 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;
       }
    }
}
功能选择全部(复选框控制){
var i;
对于(i=0;i-1)){
document.forms[0]。元素[i]。checked=CheckBoxControl.checked;
}
}
}

顺便问一下,你的foreach end标签在哪里?我的实际代码中有foreach的右括号,我只是把它放在上面的代码中,但我仍然不确定为什么所有的复选框都没有选中。我正在使用codeigniter,因此我需要做任何更改吗?不,我在javascript函数中使用断点进行了检查n、 它正在正确调用每件事,但我仍然没有看到选中的复选框。是否有可能它选中了复选框,但它没有显示为选中,因为运行此操作后,我需要单击这些复选框两次以使其选中。