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