即使将其设置为禁用,也选中该复选框
问题描述:
为什么即使将复选框设置为禁用,也会在单击全部检查脚本时始终检查全部。即使将其设置为禁用,也选中该复选框
这里是我的脚本
禁用复选框由PHP代码设置
while ($row = $result1->fetch_assoc()) {
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="' . $row['id'] . '"'.($row['pr'] == ""?"disabled ":"").' class="checkbox"></td>
}
而且这里是我的检查脚本中的所有
function setCheckboxes3(act) {
var e = document.getElementsByClassName('checkbox');
var elts_cnt = (typeof(e.length) != 'undefined') ? e.length : 0;
if (!elts_cnt) {
return;
}
for (var i = 0; i < elts_cnt; i++) {
e[i].checked = (act == 1 || act == 0) ? act : (e[i].checked ? 0 : 1);
}
}
链接
a href="javascript:setCheckboxes3(1);" class="chkmenu">Check All</a> | <a href="javascript:setCheckboxes3(0);" class="chkmenu">Uncheck All</a>
答
更新的链接,通过true|false
<a href="javascript:setCheckboxes3(true);" class="chkmenu">Check All</a> | <a href="javascript:setCheckboxes3(false);" class="chkmenu">Uncheck All</a>
然后
function setCheckboxes3(act) {
$('.checkbox').not(':disabled').prop('checked', act)
//or $('.checkbox:not(:disabled)').prop('checked', act)
}
与您当前的链接
function setCheckboxes3(act) {
$('.checkbox').not(':disabled').prop('checked', act == 1 ? true : false);
//or $('.checkbox:not(:disabled)').prop('checked', act == 1 ? true : false)
}
答
我知道这是混乱的,但它应该完成这项工作:
for (var i = 0; i < elts_cnt; i++) {
if(!e[i].disabled){
e[i].checked = (act == 1 || act == 0) ? act : (e[i].checked ? 0 : 1);
}else{
e[i].checked = false;
}
}
答
你可以只检查它是否是n OT禁止,像:
e[i].checked = (act == 1 || act == 0)? act : e[i].checked && !e[i].disabled ? false : true;
选中的属性是布尔值,所以它应该被设置为true
或false
['document.getElementsByClassName'](http://www.w3.org/ TR/2008/WD-html5-20080610/dom.html#getelementsbyclassname)会返回一个NodeList,因此'typeof e.length'永远不会是'undefined'。 – RobG
为什么包含jQuery标签,当你似乎没有使用jQuery? – RobG