web-dev-qa-db-ja.com

テキストボックス内の数値のみにRegularExpressionValidatorを使用する

Visual Studio 2012、Asp.net、Webフォーム。
テキストボックスへの入力を制御しようとしています。数字のみです。私は次のコードを持っています:

<asp:RegularExpressionValidator id="RegularExpressionValidator1" 
                 ControlToValidate="txtAcres"
                 ValidationExpression="^\d+"
                 Display="Static"
                 ErrorMessage="Only Numbers"
                 EnableClientScript="False" 
                 runat="server"></asp:RegularExpressionValidator>

しかし、私はどんなテキストでも入力することができます。何が欠けていますか?

5
KFP

これはまずテキストボックスが空白かどうかをチェックし、次に数字のみをチェックします。

<asp:TextBox ID="tbAccount" runat="server"></asp:TextBox>

テキストボックスが空白かどうかを確認します。

<asp:RequiredFieldValidator ID="RequiredFieldValidatorAccount" runat="server" ErrorMessage="*Required" ControlToValidate="tbAccount" ForeColor="Red"></asp:RequiredFieldValidator>

数字のみ許可:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="tbAccount" ErrorMessage="Please Enter Only Numbers" ForeColor="Red" ValidationExpression="^\d+$"></asp:RegularExpressionValidator>
14
Apollo

このコードは[〜#〜] aspx [〜#〜]ページで使用できます。使用する ^[1-9]\d$ValidationExpressionプロパティ内。

<asp:TextBox runat="server" ID="txtstock" width="50" />
        <asp:RegularExpressionValidator runat="server" ErrorMessage="Numeric Only" ControlToValidate="txtstock"
      ValidationExpression="^[1-9]\d$"></asp:RegularExpressionValidator>
3
TechnicalKalsa

trueプロパティにEnableClientScriptを設定する必要があります。

 EnableClientScript="true" 

EnableClientScriptプロパティを使用して、クライアント側の検証を有効にするかどうかを指定します。検証コントロールは常にサーバーで検証を実行します。また、DHTMLでサポートされているブラウザ(Microsoft Internet Explorer 4.0以降など)がクライアントで検証を実行できるようにする、完全なクライアント側の実装もあります。クライアント側の検証は、サーバーに送信される前にユーザー入力をチェックすることにより、検証プロセスを強化します。これにより、フォームが送信される前にクライアントでエラーを検出できるため、サーバー側の検証に必要な情報のラウンドトリップを回避できます。 参照

2
Adil

^(0|[1-9]\d*)$を使用できます。

0
Tran Anh Hien