【发布时间】:2017-08-25 18:47:28
【问题描述】:
我已阅读有关 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 验证失败。所以用户会想,“表单有什么问题?它不会提交,但没有错误消息。”
【问题讨论】:
-
为什么不使用带有数字 1-24 的下拉菜单而不是文本框?
-
听起来您需要修复您的网页,以便它显示验证器错误消息。
-
它确实显示了验证器错误消息。例如,它显示三位数的错误消息。它只是不显示一个或两个数字和一个数学运算符。
-
如果你想让正则表达式工作,我认为你需要将
type="number"更改为type="text" -
@WiktorStribiżew,你能把这个改成答案吗?
标签: javascript c# asp.net regex