需要javascript才能启用或禁用复选框

时间:2010-09-24 09:33:32

标签: javascript asp.net gridview

大家好我在gridview中有两个复选框控件我需要的是如果我选中了一个复选框,另一个应该被启用,如果我取消选中它应该得到禁用是否有任何方法可以做到这一点。

我写这个,但我没有得到所需的

 <script type="text/javascript">
  function checkboxClick(checked, boxId) {
 var childCheckbox = document.getElementById(boxId);
 childCheckbox.disabled = !checked;

  if(childCheckbox.disabled) //uncheck when disabled
     childCheckbox.checked = false;
}


</script>

  <asp:CheckBox ID="CheckBox1" runat="server" OnClientClick ="checkboxClick(this.checked);" />
    <asp:CheckBox ID="boxId" runat="server" Enabled="false" /></div>

1 个答案:

答案 0 :(得分:1)

基本上,你想要的是这样的:

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 + "');";

修改

根据评论满足进一步的要求:

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 -->