Проверка флажка даже я отключил его

Почему даже я устанавливаю флажок в отключении, он всегда проверяет все, когда я нажимаю скрипт проверки всех.

Вот мой сценарий

Отключить флажок, установленный 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> 

Solutions Collecting From Web of "Проверка флажка даже я отключил его"

Обновите ссылки, чтобы передать 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; 

Проверенное свойство является логическим, поэтому оно должно быть установлено как true или false