【发布时间】:2012-02-15 14:31:20
【问题描述】:
在我的应用程序中,您在输入字段中填写一个数字,该数字将在客户端由不同的验证器进行验证。我有一个外部 JS 文件,其中包含将输入字段置于焦点并选择先前输入的数字的代码。我还在我的表单标签中包含了“默认按钮”,这样输入一个新数字并提交表单就很容易而且速度很快(只需再次输入并按 ENTER)
除了一件事,一切都很好。当键入超出允许范围的数字或将输入字段留空时,仅当使用鼠标按钮单击提交按钮时才会显示错误消息。如果使用 ENTER 键单击,则显示输入字段旁边的“*”,但不显示错误消息。
我希望下面的代码足以能够看出问题所在。
提前致谢。
<form id="form1" runat="server" defaultbutton="btnCheckNr">
...
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
<asp:TextBox ID="inputBox" runat="server" Height="22px" Width="75px" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="inputBox" Display="Dynamic"
ErrorMessage="Type a number between 1 and 100." SetFocusOnError="True">*</asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Skriv ett heltal mellan 1 och 100." Text="*"
MaximumValue="100" MinimumValue="1" Type="Integer" ControlToValidate="inputBox" Display="Dynamic"></asp:RangeValidator>
<asp:Button ID="btnCheckNr" runat="server" Text="Skicka gissning" onclick="btnCheckNr_Click" />
...
</form>
JS:
var Capsule = {
init: function() {
var input = $('#inputBox');
if (!input.is(":disabled")) {
input.focus();
input.select();
}
}
}
window.onload = Capsule.init;
【问题讨论】:
标签: jquery asp.net forms validation