javascript - asp.net 中的 RegularExpressionValidator 不适用于 1 位或 2 位数字

标签 javascript c# asp.net regex

我已经阅读了有关 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/

相关文章:

c# - 比较两个对象不调用 CompareTo 方法

asp.net - 在带有 Tomcat 的 Java Spring 中使用 ASP.NET 或 ActiveX 组件

javascript - 查看Cloudflare worker 的错误日志(错误1101)

asp.net - __doPostBack 不在回发时呈现

javascript - 如何在点击时正确更改 react-bootstrap DropdownButton 的标题?

c# - Find Control on RowDataBound-Event 返回 NULL/Empty

asp.net - Azure ASP.NET Core Web api 对于代理的多部分/表单数据请求返回 404

Javascript 函数返回函数代码行或 "{[native code]},"我做错了什么?

c# - c# 是什么语言生成?

c# 文本编辑器建模列表