【问题标题】:Using RegularExpressionValidator for numbers only in textbox仅对文本框中的数字使用 RegularExpressionValidator
【发布时间】:2013-04-30 17:50:37
【问题描述】:

Visual Studio 2012、Asp.net、网络表单。
试图控制文本框的输入,仅限数字。我有以下代码:

<asp:RegularExpressionValidator id="RegularExpressionValidator1" 
                 ControlToValidate="txtAcres"
                 ValidationExpression="^\d+"
                 Display="Static"
                 ErrorMessage="Only Numbers"
                 EnableClientScript="False" 
                 runat="server"></asp:RegularExpressionValidator>

但我可以输入任何文字。我错过了什么?

【问题讨论】:

  • 试试:ValidationExpression="^\d+$"

标签: c# asp.net visual-studio-2012 webforms


【解决方案1】:

这首先检查文本框是否为空白,然后仅检查数字。

<asp:TextBox ID="tbAccount" runat="server"></asp:TextBox>

检查文本框是否为空白:

<asp:RequiredFieldValidator ID="RequiredFieldValidatorAccount" runat="server" ErrorMessage="*Required" ControlToValidate="tbAccount" ForeColor="Red"></asp:RequiredFieldValidator>

只允许数字:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="tbAccount" ErrorMessage="Please Enter Only Numbers" ForeColor="Red" ValidationExpression="^\d+$"></asp:RegularExpressionValidator>

【讨论】:

    【解决方案2】:

    您可以在 ASPX 页面上使用此代码。在 ValidationExpression 属性中使用^[1-9]\d$

    <asp:TextBox runat="server" ID="txtstock" width="50" />
            <asp:RegularExpressionValidator runat="server" ErrorMessage="Numeric Only" ControlToValidate="txtstock"
          ValidationExpression="^[1-9]\d$"></asp:RegularExpressionValidator>
    

    【讨论】:

      【解决方案3】:

      您需要为EnableClientScript 属性设置true

       EnableClientScript="true" 
      

      使用 EnableClientScript 属性来指定客户端是否 启用验证。验证控件始终执行验证 在服务器上。他们也有完整的客户端实现, 允许 DHTML 支持的浏览器(例如 Microsoft Internet Explorer 4.0 及更高版本)在客户端上执行验证。客户端验证通过检查用户输入来增强验证过程 在发送到服务器之前。这允许在 表单提交之前的客户端,避免了客户端的往返 服务器端验证所需的信息,Reference

      【讨论】:

      • 通过将 EnableClientScript 更改为 true 我收到错误:WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。请添加一个名为 jquery(区分大小写)的 ScriptResourceMapping。
      • 如果您使用的是框架 4.5,那么这可能会很有用,当面向 .NET 4.5 时,我们默认启用不显眼的验证。你需要在你的项目中有 jQuery 并且在 Global.asax 中有这样的东西才能正确注册 jQuery,connect.microsoft.com/VisualStudio/feedback/details/735928/…
      【解决方案4】:

      您可以使用^(0|[1-9]\d*)$ 好成功!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 2012-06-29
        • 2021-12-24
        • 2012-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多