Флажок ASP.NET не будет отправлять обратно, когда определен onclick - PullRequest
0 голосов
/ 10 мая 2019

Я собираюсь ответить на свой вопрос здесь - думаю, это трудно понять. У меня есть два флажка, второй из которых имеет обратную передачу, которая должна срабатывать только в том случае, если первый установлен. Вот что я написал

    <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 Ответ

1 голос
/ 10 мая 2019

Я обнаружил, что 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; }" />
...