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>
しかし、私はどんなテキストでも入力することができます。何が欠けていますか?
これはまずテキストボックスが空白かどうかをチェックし、次に数字のみをチェックします。
<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>
このコードは[〜#〜] 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>
true
プロパティにEnableClientScript
を設定する必要があります。
EnableClientScript="true"
EnableClientScriptプロパティを使用して、クライアント側の検証を有効にするかどうかを指定します。検証コントロールは常にサーバーで検証を実行します。また、DHTMLでサポートされているブラウザ(Microsoft Internet Explorer 4.0以降など)がクライアントで検証を実行できるようにする、完全なクライアント側の実装もあります。クライアント側の検証は、サーバーに送信される前にユーザー入力をチェックすることにより、検証プロセスを強化します。これにより、フォームが送信される前にクライアントでエラーを検出できるため、サーバー側の検証に必要な情報のラウンドトリップを回避できます。 参照
^(0|[1-9]\d*)$
を使用できます。