我已经阅读了许多关于选择所有复选框的其他问题,但找不到一个说明如何触发其他复选框操作的问题。
I have a main checkbox, when this checkbox is selected all other checkboxes are selected as well. 问题是,其他复选框必须执行自己的操作,例如禁用文本字段等,如果它们被选中/未选中。我通过将 onclick 添加到每个复选框来实现这一点。那么,如果选择了主复选框,如何在单击时调用每个复选框(或使每个复选框执行其操作)?
在阅读了这个之后,我做了以下几点:
// main checkbox functin that checks/unchecks other checkboxes.
function toggleAllCheckBoxes(source , operationType) {
checkboxes = document.getElementsByName("checkBox" + operationType);
for each(var checkbox in checkboxes)
checkbox.checked = source.checked;
// checkbox.addEventListener('click', true); // this is wrong.
}
//this will toggle text fields enabled/disabled
function toggleDisable(oldTable, newTable , checkBox)
{
if( document.getElementById(newTable) !=null)// in case to toggle only old table
{
document.getElementById(newTable).disabled = checkBox.checked;
}
document.getElementById(oldTable).disabled = checkBox.checked;
}
主复选框:
All<input type="checkbox" onClick="toggleAllCheckBoxes(this , '<?=$operationType?>')"/>
其他复选框
X<input name="checkbox" id="checkbox" onclick="toggleDisable('<?= $originalTableId?>' , '<?= $backupTableId?>' , this )" type="checkbox" />
到目前为止,这工作正常,除了如果选中主复选框,则不会启用/禁用文本字段。尽管单个复选框能够做到这一点。
谢谢。