По сути, вы хотите что-то вроде этого:
function checkboxClick(checked) {
document.getElementById('childCheckbox').disabled = !checked;
}
<input type="checkbox" onclick="checkboxClick(this.checked);" />
<input type="checkbox" id="childCheckbox" />
Теперь, если они являются элементами управления ASP.NET, <asp:CheckBox />
, вы, вероятно, захотите отредактировать checkboxClick
, чтобы он также включал ClientID флажка, чтобы включить / отключить.
<asp:CheckBox runat="server" id="cb1" />
<asp:CheckBox runat="server" id="cb2" />
var cb2 = FindControl("cb2");
((CheckBox) FindControl("cb1")).OnClientClick = "checkboxClick(this.checked, '" + cb2.ClientID + "');";
EDIT
Учет дополнительных требований согласно комментариям:
function checkboxClick(checked, boxId) {
var childCheckbox = document.getElementById(boxId);
childCheckbox.disabled = !checked;
if(childCheckbox.disabled) //uncheck when disabled
childCheckbox.checked = false;
}
<asp:CheckBox runat="server" id="cb1" />
<asp:CheckBox runat="server" id="cb2" Enabled="false" /> <!-- disable on load -->