Я пытаюсь сделать кнопку «выбрать все» в заголовке над таблицей, проверяя, все ли флажки в определенном классе отмечены, и переключая статус при нажатии.
Я новичок в PHP и никогда раньше не работал с js.
Может кто-нибудь сказать, пожалуйста, что делать с «d.OriginalChecked» и «d.attr», поскольку именно там находятся ошибки (я знаю до сих пор …)?
Выбрать все вкл / выкл в заголовке:
<td><input type="checkbox" id="complete_select_all" name="complete_select_all" onclick="checkboxCompleteSelectAll();" value="completeAll">Select All<br></td>
Для каждого ряда:
<td class="registerCellCenter" align="center" valign="top"><input type="checkbox" class="completeCheckbox" value="completed'.$courseRegisterRow['id'].'" '.($courseRegisterRow['regstatus'] == 'completed' ? 'checked' : '').' />
</td>
…
Javascript, чтобы заставить его работать — теоретически:
<script type="text/javascript">
dojo.require("dojo.NodeList-traverse");
// select all as completed
function checkboxCompleteSelectAll(initial) {
if (dojo.byId('complete_select_all')) {
if (dojo.byId('complete_select_all').checked) {
o.query('.completeCheckbox').forEach(function (elem) {
var d = dijit.getEnclosingWidget(elem);
d.OriginalChecked = d.attr('checked');
d.attr('checked', true);
});
} else {
dojo.query('.completeCheckbox').forEach(function (elem) {
var d = dijit.getEnclosingWidget(elem);
if (typeof(d.OriginalChecked) !== 'undefined') {
d.attr('checked', d.OriginalChecked);
} else {
// keep as is, used on load
}
});
}
}
}
dojo.addOnLoad(function() {
checkboxCompleteSelectAll(true);
});
</script>
Задача ещё не решена.
Других решений пока нет …