在我的应用程序中,您在输入字段中填写一个数字,该字段在客户端由不同的验证器进行验证。我有一个带有代码的外部JS文件,该代码将输入字段置于焦点并选择先前输入的数字。我也在我的表单标签中包含了“defaultbutton”,这样输入一个新号码并提交表单很简单并且速度很快(只需再次输入并按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;
答案 0 :(得分:2)
如果我错了,请纠正我,但看起来你的范围验证器和你需要的字段验证器都需要修改。
不应该这样吗?
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="inputBox" Display="Dynamic" ErrorMessage="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Skriv ett heltal mellan 1 och 100." MaximumValue="100" MinimumValue="1" Type="Integer" ControlToValidate="inputBox" Display="Dynamic"></asp:RangeValidator>