2017-08-25 12 views
1

RegularExpressionValidatorに関する他の質問を読んだが、助けにはなりませんでした。私はASP.NET C#アプリケーションで作業しており、1桁または2桁の数字にする必要のあるテキストフィールドを持っています。asp.netのRegularExpressionValidatorが1桁または2桁の数字で動作しない

<asp:TextBox 
    ID="Hunt_Daily_Sitting_hrs" 
    runat="server" 
    class="form-control" 
    placeholder="hours" 
    type="number"></asp:TextBox> 

書かれているように、type = "number"が指定されていても、数学演算子が使用できます。だから、人々は "6〜8時間"のように "6-8"に入っています。 thisページでは、正規表現^ \ d {1,2} $はそのようなエントリにフラグを付けます。しかし、私のアプリでは、

<asp:RegularExpressionValidator 
    ID="HuntSitRegexp" 
    Display="Dynamic" 
    ControlToValidate="Hunt_Daily_Sitting_hrs" 
    ValidationExpression="^\d{1,2}$" 
    runat="server" 
    ErrorMessage="Please enter a number from 1-24" 
    Font-Size="Large" 
    ForeColor="Red" /> 

はありません。 3桁の数字にはすぐにフラグが立てられますが、「6-8」などの項目にはすぐにはフラグが立てられません。しかし、 "Submit"ボタンが何もしないという点で、 "6-8" DOESのようなエントリは送信に失敗し、Javascriptの検証が失敗したことを示します。ユーザーは「フォームに何が問題なのですか?それは送信されませんが、エラーメッセージはありません」と思ったままです。

+1

使用しない理由テキストボックスの代わりに1〜24の数字でドロップダウンしますか? – juharr

+0

ウェブページを修正して、バリデーターのエラーメッセージを表示する必要があるように思えます。 –

+0

バリデーターエラーメッセージを表示します。たとえば、3桁の数字のエラーメッセージを表示します。 1桁または2桁と数学演算子では表示されません。 –

答えて

1

ValidationExpression="^\d{1,2}$"は大丈夫ですが、正規表現のチェックがnumberタイプの入力が有効になっていません試してみてください。

したがって、asp:TextBoxコントロールtype="number"type="text"に変更する必要があります。

0

は、このレッグEXが代わりに

^[0-9]{1,2}$ 
+0

私は同じ結果で上記を試しました。 –

0

タイプを変更すると答えが正しいと思います。 ValidationExpression = "^ \ d {1,2} $"
と ErrorMessage = "と一致しない番号を入力してください。任意の1〜2桁の数字が入ります。

1-24には、以下の場合にのみ番号が一致する正規表現式:^(\ d)の$ | ^(1つの\ D)$ | ^(2 [0-4])$

関連する問題