web-dev-qa-db-ja.com

テキストボックスに整数値があることを確認するためのasp.net検証

テキストボックスに必要な検証セットアップがありますが、整数であることも確認する必要があります。

これどうやってするの?

52
mrblah

懸念しているのが、フィールドに整数が含まれている(つまり、範囲に関係していない)ことだけである場合、 CompareValidatorOperatorDataTypeCheckに設定されたプロパティ:

<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer" 
 ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" />

有効な特定の範囲の値がある場合(おそらくそうです)、次のように RangeValidator を使用できます。

<asp:RangeValidator runat="server" Type="Integer" 
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox" 
ErrorMessage="Value must be a whole number between 0 and 400" />

これらは、TextBoxにテキストがある場合にのみ検証されるため、 RequiredFieldValidator も保持する必要があります。

@ Mahin が言ったように、必ず Page.IsValid サーバー側のプロパティ。それ以外の場合、バリデーターはJavaScriptが有効なユーザーに対してのみ機能します。

113
bdukes

これは私にはうまくいきます:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
     ControlToValidate="YourTextBoxID"
     ErrorMessage="Only numeric allowed." ForeColor="Red"
     ValidationExpression="^[0-9]*$" ValidationGroup="NumericValidate">*
</asp:RegularExpressionValidator>

送信ボタンにもValidationGroup="NumericValidate"を追加する必要があると思います。

8
Shinigamae

Int32.TryParse。 を使用します

 int integer;
 Int32.TryParse(Textbox.Text, out integer)

Boolを返すので、有効な整数が入力されたかどうかを確認できます。

4
Brandon

正規表現検証ツールをテキストボックスに添付し、その表現を次のようにします。

^\d+$

もちろん、サーバー側の検証も行います。

2
Matthew Jones

これを処理する方法はいくつかあります。 RequiredFieldValidatorとRangeValidatorを追加することができます(それがケースで機能する場合)、またはCustomFieldValidatorを追加することができます。

CustomFieldValidatorへのリンク: http://msdn.Microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator%28VS.71%29.aspx

ASP.NET検証に関するMSDN記事へのリンク: http://msdn.Microsoft.com/en-us/library/aa479045.aspx

2
bechbd

Visual Studioは、範囲チェックと型チェックのサポートを統合しました:-

これを試してください:-範囲チェックの場合特定の範囲の数値を検証/チェックする前に、マークアップビューからデザインビューに切り替えます。

「表示」>「ツールボックス」>「検証」

RangeValidatorを設計ページにドラッグして、エラーメッセージを表示します(ユーザーが範囲外の値を入力している場合はもちろん)RangeValidatorコントロールをクリックします。右クリックしてプロパティを選択します。 [プロパティ]ウィンドウ(通常はソリューションバーの下に開きます)で[エラーメッセージ]を選択します。書く :-

番号は範囲内でなければなりません。

コントロールを選択して検証し、ドロップダウンからTextboxIDを選択します(または、とにかく書き込みます)。プロパティバー自体に入力し、整数を選択します。
そのすぐ上に最大値と最小値が表示されます。希望の数値を入力します。

タイプチェック用(範囲なし)
特定の範囲の数値を検証/確認する前に、マークアップビューからデザインビューに切り替えます。

「表示」>「ツールボックス」>「検証」

CompareValidatorを、エラーメッセージを表示するデザインページにドラッグします(もちろん、ユーザーがテキストを入力している場合)。 CompareValidatorコントロールをクリックします。右クリックしてプロパティを選択します。 [プロパティ]ウィンドウ(通常はソリューションバーの下に開きます)で[エラーメッセージ]を選択します。書く:-

値は数値でなければなりません。

次に、ControltoValidateオプションを見つけて、その中にcontrolID名を書き込みます(または、ドロップダウンから選択することもできます)。初期化 。

座っている

代替 aspxページに次のコードを記述できます:-<%-範囲なしで検証する-%>

1
Prince Sharma

これにはJavaスクリプトを使用できます。

<asp:TextBox ID="textbox1" runat="server" Width="150px" MaxLength="8" onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;"></asp:TextBox>
1
Mohit Kumar
<script language="javascript" type="text/javascript">
        function fixedlength(textboxID, keyEvent, maxlength) {
            //validation for digits upto 'maxlength' defined by caller function
            if (textboxID.value.length > maxlength) {
                textboxID.value = textboxID.value.substr(0, maxlength);
            }
            else if (textboxID.value.length < maxlength || textboxID.value.length == maxlength) {
                textboxID.value = textboxID.value.replace(/[^\d]+/g, '');
                return true;
            }
            else
                return false;
        }
 </script>

<asp:TextBox ID="txtNextVisit" runat="server" MaxLength="2" onblur="return fixedlength(this, event, 2);" onkeypress="return fixedlength(this, event, 2);" onkeyup="return fixedlength(this, event, 2);"></asp:TextBox> 
1
devraj kumar

http://msdn.Microsoft.com/en-us/library/ad548tzy%28VS.71%29.aspx

サーバー検証コントロールを使用するときは、ブラウザでJavaScriptを無効にできるという事実に注意する必要があります。したがって、Page.IsValidプロパティを常にサーバー側で使用する必要があります。

1
MRG

ボタンをダブルクリックして、次のコードを使用します:-

protected void button_click(object sender,EventArgs e)
{
 int parsedValue;
 if(int.TryParse(!txt.Text,out parsedValue))
 {
 Label.Text = "Please specify a number only !!"; //Will put a text in a label so make     
    //sure                
  //you have a label
 }
 else
  {
    // do what you want to  
  }
0
Prince Sharma