2011-01-04 5 views
0

JavaScriptを使用せずに小数点以下2桁を入力できないようにするテキストボックスがあります。小数点以下2桁しか使用できませんasp.net

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

+0

以下に述べるRegularExpressionValidatorは素晴らしいオプションですが、正確な正規表現を与えるために、有効な入力と無効な入力の例を与えることのできる検証式は何ですか? – gbs

答えて

1

JavaScriptを直接的または間接的に使用することなく、テキストボックスに小数点以下2桁のテキストを受け入れさせないようにすることはできません。 (これは入力マスクとも呼ばれます)。

ただし、ユーザーが自由形式のテキストを入力し、サーバー上でポストバック時にテキストを検証できるようにすることはできます。自動的に番号を丸めるか、エラーメッセージをクライアントに返すことができます。

2

テキストボックスのMaxLengthプロパティを設定することはできますが、小数点があるかどうかの考え方はありません。

を使用して、ServerValidateイベントを介してサーバー上の入力番号を確認することもできます。しかし、これは値をチェックするためにサーバーに行く必要があります(つまり、最初はあなたのフォームがユーザーに無効な数字を入力できるように見えます)。 、ユーザーへの即時のフィードバックをしたい場合は

<asp:TextBox ID="NumberTextBox" runat="server" /> 
<asp:RegularExpressionValidator runat="server" ControlToValidate="NumberTextBox" 
           ValidationExpression="\d+(?:(?:\.|,)\d{1,2})?" /> 

はまたすぐにフィードバックを提供するために、クライアント上ではJavaScriptを使用します。これは、あなたの正確なグローバル化の要件に応じて、RegularExpressionValidatorにできるように使用する必要がありますJavaScriptベースのソリューションを使用する必要があります。

+1

RegularExpressionValidatorはおそらく簡単です。また、JavaScriptを使用する一方で、ASP.NET AJAX ToolkitのMaskedEditコントロールは、独自のjQueryを作成するよりも、少なくともサーバーコントロールのように感じられます。 ;-) –

+0

サーバ検証イベントの使用を確認するにはどうすればよいですか? – lisa

+0

@lisaと同じ方法で、 'Button'の' Click'イベントにワイヤーアップし、 'CustomValidator'の' ServerValidate'イベントに配線し、 'args.IsValid'をセットします。入力の有効性によって異なります。 – bdukes

0

ユーザーが小数点以下2桁以上を入力しないようにする必要がある場合は、JavaScriptまたはJavaScriptを実装するサーバーコントロールを使用する必要があります。

しかし、それらが何桁の数字を入力してからそれを妥当性検査(または2桁に丸める)することができるようにするのが理にかなっているかもしれません。

関連する問題