Visual Studio 2012,Asp.net,webforms 尝试将输入控制到文本框中,仅限数字。我有以下代码:
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="txtAcres"
ValidationExpression="^\d+"
Display="Static"
ErrorMessage="Only Numbers"
EnableClientScript="False"
runat="server"></asp:RegularExpressionValidator>
但我可以输入任何文字。我错过了什么?
答案 0 :(得分:13)
首先检查文本框是否为空,然后仅检查数字。
<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>
答案 1 :(得分:3)
您可以在 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>
答案 2 :(得分:2)
您需要为true
属性设置EnableClientScript
。
EnableClientScript="true"
使用EnableClientScript属性指定是否为客户端 验证已启用。验证控件始终执行验证 在服务器上。他们还有完整的客户端实现 允许支持DHTML的浏览器(例如Microsoft Internet Explorer 4.0及更高版本)在客户端上执行验证。客户端验证通过检查用户输入来增强验证过程 在它发送到服务器之前。这允许检测错误 提交表单之前的客户端,避免往返 服务器端验证所需的信息,Reference
答案 3 :(得分:0)
您可以使用^(0|[1-9]\d*)$
好成功!