通过复选框更改按钮的启用属性

时间:2010-04-06 12:25:38

标签: asp.net javascript javascript-events

我尝试了这个javascript,但它不起作用 - here

我需要在选中复选框时将按钮的enabled属性更改为true,否则更改为false。这是我的代码。

<tr>
  <td colspan="2" align="center">
    <asp:CheckBox ID="cbAcceptAgreement" runat="server" OnClientClick="acceptAgreement(this)" />
    <asp:Label ID="lblUserAgreement" runat="server" Text="I accept the " />
    <asp:HyperLink ID="hlUserAgreement" runat="server" Text="User Agreement" NavigateUrl="Help/UserAgreement.aspx" />
  </td>
</tr>
<tr>
  <td colspan="2" align="center">
    <asp:Button ID="btnRegister" runat="server" Text="Register"  />
  </td>
</tr>

<script type="text/javascript">
  function acceptAgreement(obj) {
    document.getElementById('<%=btnRegister.ClientID%>').disabled = !obj.checked;
  }
</script>

你能帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

Javascript区分大小写,您的函数中有Objobj,它们必须匹配:)

要修复,请将您的功能更改为:

function acceptAgreement(obj) {
  document.getElementById('<%=btnRegister.ClientID%>').disabled = !obj.checked;
}

答案 1 :(得分:0)

function acceptAgreement(id){ // where id is check box id
  var check = document.getElementById(id).checked
  document.getElementById('btnRegister').disabled = !check
}

答案 2 :(得分:0)

因为您在服务器上运行了这些按钮和复选框,为什么不处理启用和禁用后面的服务器代码。您还使用哪种编程语言来代码隐藏c#example

            protected void cbAcceptAgreement_CheckChanged(object sender, EventArgs e)
        {
             btnRegister.Enabled = cbAcceptAgreement.Checked;
        }

页面部分

        <asp:CheckBox ID="cbAcceptAgreement" runat="server" AutoPostBack="True"
        oncheckedchanged="cbAcceptAgreement_CheckedChanged" />

lemme知道这对你有用吗伊万

对于chekcbox,

更改为autopostback = true,希望这有助于