我尝试在表格上方的标题上创建一个“全选”按钮,检查是否选中了某个类中的所有复选框,并在单击状态下切换状态。
我是PHP的新手,以前从未使用过js。 有人可以告诉使用“ d.OriginalChecked”和“ d.attr”做什么,因为那是错误的所在(到目前为止我知道的...)?
在标题上选择全部打开/关闭:
<td><input type="checkbox" id="complete_select_all" name="complete_select_all" onclick="checkboxCompleteSelectAll();" value="completeAll">Select All<br></td>
对于每一行:
<td class="registerCellCenter" align="center" valign="top"><input type="checkbox" class="completeCheckbox" value="completed'.$courseRegisterRow['id'].'" '.($courseRegisterRow['regstatus'] == 'completed' ? 'checked' : '').' />
</td>
... 使它起作用的Javascript-理论上:
<script type="text/javascript">
dojo.require("dojo.NodeList-traverse");
// select all as completed
function checkboxCompleteSelectAll(initial) {
if (dojo.byId('complete_select_all')) {
if (dojo.byId('complete_select_all').checked) {
o.query('.completeCheckbox').forEach(function (elem) {
var d = dijit.getEnclosingWidget(elem);
d.OriginalChecked = d.attr('checked');
d.attr('checked', true);
});
} else {
dojo.query('.completeCheckbox').forEach(function (elem) {
var d = dijit.getEnclosingWidget(elem);
if (typeof(d.OriginalChecked) !== 'undefined') {
d.attr('checked', d.OriginalChecked);
} else {
// keep as is, used on load
}
});
}
}
}
dojo.addOnLoad(function() {
checkboxCompleteSelectAll(true);
});
</script>