我怎么才能只接受一个“。”在文本框中只接受数值?
我使用的是名为 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>
在这段代码中,我可以输入多个“。”这不好。
答案 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="." />