我已经阅读了有关 RegularExpressionValidator 的其他问题的其他答案,但没有帮助。我正在开发一个 ASP.NET C# 应用程序,我有一个文本字段需要是 1 位或 2 位数字。这是控件:
<asp:TextBox
ID="Hunt_Daily_Sitting_hrs"
runat="server"
class="form-control"
placeholder="hours"
type="number"></asp:TextBox>
正如所写,即使它指定了 type="number",它也允许数学运算符。所以人们一直在输入“6-8”,就像“6 到 8 小时”一样。在 this页面,正则表达式 ^\d{1,2}$ 标记这样的条目。但是,在我的应用程序中,行
<asp:RegularExpressionValidator
ID="HuntSitRegexp"
Display="Dynamic"
ControlToValidate="Hunt_Daily_Sitting_hrs"
ValidationExpression="^\d{1,2}$"
runat="server"
ErrorMessage="Please enter a number from 1-24"
Font-Size="Large"
ForeColor="Red" />
没有。 3 位数字会立即被标记,但“6-8”等条目不会立即被标记。然而,诸如“6-8”之类的条目提交失败,因为“提交”按钮什么都不做,表明 Javascript 验证失败。所以用户会想,“表单有什么问题?它不会提交,但没有错误消息。”
最佳答案
ValidationExpression="^\d{1,2}$"
很好,但是没有为 number
的输入启用正则表达式检查类型。
因此,您需要更改 asp:TextBox
控制type="number"
至 type="text"
.
关于javascript - asp.net 中的 RegularExpressionValidator 不适用于 1 位或 2 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887775/