5

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

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

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

4

4 回答 4

14

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

<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>
于 2014-12-01T15:39:35.140 回答
4

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

<asp:TextBox runat="server" ID="txtstock" width="50" />
        <asp:RegularExpressionValidator runat="server" ErrorMessage="Numeric Only" ControlToValidate="txtstock"
      ValidationExpression="^[1-9]\d$"></asp:RegularExpressionValidator>
于 2016-07-18T14:20:29.370 回答
2

您需要设置true属性EnableClientScript

 EnableClientScript="true" 

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

于 2013-04-30T17:55:11.880 回答
0

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

于 2017-04-21T09:09:02.713 回答