繁体   English   中英

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

[英]Change button's enabled property via checkbox

我试过这个 JavaScript 但它不起作用 - 这里

我需要在选中复选框时将按钮的启用属性更改为 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>

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

Javascript 区分大小写,你的 function 中有Objobj ,它们必须匹配:)

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

function acceptAgreement(obj) {
  document.getElementById('<%=btnRegister.ClientID%>').disabled = !obj.checked;
}
function acceptAgreement(id){ // where id is check box id
  var check = document.getElementById(id).checked
  document.getElementById('btnRegister').disabled = !check
}

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

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

页面部分

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

让我知道这是否适合你伊万

将 chekcbox 更改为 autopostback = true 希望这会有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM