2012-02-15 17 views
0

で送信したときにエラーメッセージ(検証)が表示されないアプリケーションでは、入力フィールドに数値を入力し、クライアント側でバリデーターを検証します。私は入力フィールドにフォーカスを置き、前に入力した番号を選択するコードを持つ外部JSファイルを持っています。また、私のフォームタグに "defaultbutton"を含めて、新しい番号を入力してフォームを送信するのが簡単で速くなりました。(もう一度タイプしてEnterを押してください)ENTER(c#/ asp.net)

1つのこと以外はすべて正常に動作します。許可された範囲外の数値を入力するか、入力フィールドを空白のままにしておくと、マウスボタンで送信ボタンをクリックした場合にのみエラーメッセージが表示されます。 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; 

答えて

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>