2013-11-21 3 views
1

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

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

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

[ 'document.getElementsByClassName'] (http://www.w3.org/ TR/2008/WD-html5-20080610/dom.html # getelementsbyclassname) возвращает NodeList, поэтому 'typeof e.length' никогда не будет' undefined'. – RobG

+0

Зачем включать тег jQuery, когда вы не используете jQuery? – RobG

ответ

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) 
} 
+0

, так что я собираюсь изменить свой сценарий с этим? – surname

+0

@papaosurname yes –

+0

это работает :), я просто добавлю ссылку на мой предыдущий вопрос. Посмотрите на это – surname

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

Вы могли бы просто проверьте это, если это n ВЗ инвалидов, что-то вроде:

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

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

Смежные вопросы