定义onclick时,ASP.NET复选框不会回发

时间:2019-05-10 10:42:25

标签: asp.net checkbox postback

我打算在这里回答我自己的问题-我认为这可能很难理解。我有两个复选框,其中第二个具有回发,只有在选中第一个时才应触发。这就是我写的

    <asp:CheckBox ID="chkTC" runat="server" Text="I have read and accept the Terms & Conditions" /><br />
    <asp:CheckBox ID="chkRegister" runat="server" AutoPostBack="true" onclick =" var bOK = document.getElementById('chkTC').checked; if (!bOK) { alert('You must agree to the Terms and Conditions'); } return bOK; " />

onclick代码是我想确定按钮是否应回发的代码的副本。

但是,即使选中了第一个复选框,第二个复选框也没有回发。

1 个答案:

答案 0 :(得分:1)

我发现ASP.NET没有为复选框定义的'onclick'属性,但是会将提供的所有onclick代码传递给生成的HTML。但是,它也利用onclick属性实现回发。我提供的onclick代码位于执行回发的代码之前。而且因为我使用了return语句,所以它没有被执行。抱歉,这很明显-对我而言不是。

所以解决方法是仅在我不希望回发时执行退货

    <asp:CheckBox ID="chkRegister" runat="server" AutoPostBack="true" onclick =" var bOK = document.getElementById('chkTC').checked; if (!bOK) { alert('You must agree to the Terms and Conditions'); return false; }" />