2

「。」を1つだけ受け入れるにはどうすればよいですか。数値のみを受け入れるテキストボックスでは?私はというajaxツールを使用していますFilteredTextBoxExtender

これは私のサンプルコードです:

<asp:TextBox ID="txtMNumberOfHours" runat="server" 
Width="50px" MaxLength="10"></asp:TextBox>

<asp:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" 
 FilterType="Numbers, Custom" ValidChars="." 
 TargetControlID="txtMNumberOfHours" ></asp:FilteredTextBoxExtender>

このコードでは、複数の「。」を入力できます。これは良くありません。

4

5 に答える 5

3

regexvalidatorまたはmaskededitエクステンダーを使用するのはどうですか?

maskededitextenderを使用すると、次のことができます

<asp:MaskedEditExtender ID="MaskedEditExtender1" 
   runat="server" TargetControlID="txtMNumberOfHours"
   Mask="99.99" MaskType="Number" InputDirection="RightToLeft" />

これにより、ドットの左側に2桁、右側に2桁の合計4桁の数字が許可されます。

于 2013-01-15T03:35:57.730 に答える
1

FilteredTextBoxExtenderは、入力されているときに一度に1つの文字のみを確認するため、入力されたピリオドの数を確認するために全体を確認するわけではありません。

RegularExpressionValidatorを使用することをお勧めします。

于 2013-01-15T03:40:38.490 に答える
0

これを行う1つの方法は、文字列に余分なものがないかどうかを確認することです。私はRegExエキスパートではないため、RegExを使用しています。決して別のメンバーに任せません。ただし、TextBoxのOnTextChangedイベントでチェックを行います。

于 2013-01-15T03:35:40.203 に答える
0

asp.netでこれを処理する最良の方法は、カスタムjavascript検証を作成することです。

次の正規表現を使用して、値を検証できます。

^[-]?((\d+)|(\d+\.\d+)|(\.\d+))$

jQueryを使用する場合は、blurイベントを使用してクライアント側で検証できます。

もちろん、常にサーバー側で再度解析する必要があり、クライアント側が正しいデータを提供するとは限りません。

于 2013-01-15T03:39:59.033 に答える
-1

これが解決策です

 <ajaxToolkit:FilteredTextBoxExtender ID="txtPrice_Filter" runat="server" BehaviorID="txtPrice_Filter" FilterType="Custom, Numbers" TargetControlID="txtPrice" ValidChars="." />
于 2016-09-16T21:45:16.463 に答える