2009-06-26 8 views
0

asp.netページにはサーバー側の送信ボタンがあり、2つのテキストボックスに数値のみを受け付けています。また、asp.netの検証コントロールも使用しています。asp.netを使用したエラーメッセージの処理

両方のテキストボックスに数値以外のデータを入力した場合、ページに表示されるエラーメッセージは1つだけです: "数値のみが許可されています。" そして、私はこれをサーバーサイドのイベントを起こさずに達成したいと思います。

ありがとうございました。

答えて

3

もちろん、これはjavascriptで行う必要があります。

入力が数値であるかどうかを確認するための正確なjavascriptメソッドはわかりませんが、私はあなたが正規表現を使用できると推測しています。しかし、あなたは、このような

<div id="numericErrorMessage" class="error" style="display:none;"> 
     Numeric Values only. 
</div> 

として隠されたdiv要素を持つことができ、あなたが行うことができます。もちろん

if(!IsNumber(text1) || !IsNumber(text2)) { 
    document.getElementById(numericErrorMesage).style.display = 'block'; 
} 

を、これは「pseudocodish」ですが、私はあなたのJavaScriptができる方法を見つけたら、これはあなたのために働くだろうと思います有効な数値をチェックしてIsNumber関数に置き換えてください

+0

ありがとう...このソリューションはSafari、Firefox、つまりブラウザで動作しますか? – user74042

+0

私はそれが、doc.getelemntbyidはかなり標準だと思います。 –

0

あなたは正規表現バリデータを使用することができます。

<asp:RegularExpressionValidator id="RegularExpressionValidator1" 
       ControlToValidate="TextBox1" 
       ValidationExpression="\d" 
       Display="Static" 
       ErrorMessage="Only numeric values are allowed." 
       EnableClientScript="True" 
       runat="server"/> 
+0

ありがとうございます。しかし、それぞれのテキストボックスにRegularExpressionValidatorを添付し、ユーザーが両方の数値以外の数値を入力すると、エラーメッセージが2回表示されます私はページに表示したくない。私はエラーメッセージを表示したいeは1回だけです。 – user74042

+0

あなたはそうです。彼は要件を満たすので、私はジャックの答えをupvotedしています。 –

1

あなたは上記の\ dの正規表現を使用してjQueryの検証を使用することができます。 jqueryを使用すると、より多くの出力を制御できます。 It is discussed here.

0

エラーメッセージが1つだけ必要な場合は、カスタムバリデーターを使用することをお勧めします。あなた自身のサーバーとクライアントの検証関数を書く必要がありますが、それは簡単です。ここにリンクは次のとおりです。

http://msdn.microsoft.com/en-us/library/f5db6z8k(VS.71).aspx

ます。また、比較バリデータを使用することができますが、その後、各制御のための1つを持っている必要がありますしようとしている、とあなたは2件のエラーメッセージが発生します。

関連する問題