我有一个带有复选框和几个文本框的 ASP.NET 页面。
当用户取消勾选复选框时,我需要进行一系列检查并告知用户结果。我通过复选框自动回发属性对回发进行这些检查:
<asp:CheckBox ID="chkDecision" runat="server" AutoPostBack="true" />
我实施的另一条业务规则是,当未选中复选框并且用户开始输入其中一个文本框时,我必须自动勾选复选框。我正在通过 Javascript 执行此操作:
<asp:TextBox ID="txtLeft" runat="server" CssClass="textboxstandard" MaxLength="50" onkeyDown="SelectDecision(event);">
function SelectDecision(e) {
if (!checkSpecialKeys(e)) {
var chkDec = $get('<%=chkDecision.ClientID %>');
if (!chkDec.checked) {
chkDec.checked = true;
}
}
}
以上所有工作正常。
我遇到的这个问题是,当用户开始在框中输入时,复选框会打勾。如果他们随后手动取消选中该框,则回发不会触发。
这大概是因为复选框处于与加载页面时相同的状态,因此某些内部逻辑认为回发是不必要的。
如何执行上述场景中提到的服务器端检查?
最终确定
感谢下面提供的帮助,在测试提供的答案期间,我自己能够进一步推进这一点。我发现我可以AutoPostBack
在文本框上设置属性:
<asp:TextBox ID="txtLeft" runat="server" CssClass="textboxstandard" MaxLength="50" onkeyDown="SelectDecision(event);" AutoPostBack="true"></asp:TextBox>
在我的场景中,虽然实现了与以下相同的事情,但我发现它更有用,因为在完成编辑后会发生回发。感谢你的帮助!