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

时间:2013-11-21 05:22:31

标签: javascript php jquery checkbox

为什么即使我将复选框设置为禁用它总是在我点击全部检查脚本时全部检查。

这是我的剧本

禁用由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>

3 个答案:

答案 0 :(得分:0)

更新链接以传递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)
}

答案 1 :(得分:0)

我知道它很乱,但它应该完成工作:

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

答案 2 :(得分:0)

如果没有禁用它,您可以检查它,例如:

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

checked属性是布尔值,因此应将其设置为truefalse