只接受一个“。”在文本框中只接受数字值

时间:2013-01-15 03:28:55

标签: c# asp.net textbox

我怎么才能只接受一个“。”在文本框中只接受数值? 我使用的是名为 FilteredTextBoxExtender

的ajax工具

这是我的示例代码:

<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>

在这段代码中,我可以输入多个“。”这不好。

5 个答案:

答案 0 :(得分:3)

如何使用regexvalidator或maskededit extender?

使用maskededitextender,你可以做到

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

这将允许总共有四位数字,左边2和点右边2。

答案 1 :(得分:1)

FilteredTextBoxExtender只会在输入时一次查看一个字符,因此它不会查看整个事件以查看输入了多少个字段。

我建议使用RegularExpressionValidator。

答案 2 :(得分:0)

这样做的一种方法是使用RegEx检查字符串中的任何额外的。因为我不是RegEx专家,所以我不会将其留给其他成员。但是你要检查TextBox上的OnTextChanged事件。

答案 3 :(得分:0)

在asp.net中处理此问题的最佳方法是编写一些自定义的javascript验证。

您可以使用以下注册表来验证该值。

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

如果您使用jQuery,则可以使用blur事件在客户端进行验证。

当然,你应该总是在服务器端再次解析它,而不是假设客户端会给你正确的数据。

答案 4 :(得分:-1)

这是解决方案

 <ajaxToolkit:FilteredTextBoxExtender ID="txtPrice_Filter" runat="server" BehaviorID="txtPrice_Filter" FilterType="Custom, Numbers" TargetControlID="txtPrice" ValidChars="." />