使用ENTER提交时未显示错误消息(验证)(c#/ asp.net)

时间:2012-02-15 14:31:20

标签: jquery asp.net forms validation

在我的应用程序中,您在输入字段中填写一个数字,该字段在客户端由不同的验证器进行验证。我有一个带有代码的外部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;

1 个答案:

答案 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>