选中复选框,即使我将其设置为禁用


Checking the checkbox even I set it into disabled

为什么即使我将复选框设置为禁用,当我单击check-all的脚本时,它总是check-all。

这是我的脚本

禁用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;
    }
  }

如果它没有被禁用,你可以检查一下,比如:

e[i].checked = (act == 1 || act == 0)? act : e[i].checked  && !e[i].disabled ? false : true;

选中的属性是布尔属性,因此应将其设置为truefalse