我陷入了一个非常愚蠢的问题。我试图选择我使用表中的循环动态创建的所有复选框。在表格的头部我有一个复选框,我想在单击头部中的复选框后选择表格中的所有复选框。 这是我的代码。
<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';
}
}
}
我不知道这段代码有什么问题,我无法选择复选框。
由于
答案 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;
}
}
}