2010-01-20 76 views
1

为什么此代码允许用户不输入任何文本? AFAIK +意味着One or more为什么我的RegularExpressionValidator允许不输入任何文本?

<asp:TextBox ID="myTextBox" runat="server" MaxLength="9" /> 
<asp:RegularExpressionValidator runat="server" 
    ControlToValidate="myTextBox" 
    ValidationExpression="\d+" 
    ErrorMessage="Error!" /> 

我希望用户只能输入9位数字。这个字段是必需的。我怎样才能做到这一点?

回答

1

正则表达式验证才能正常工作。我建议放入一个单独的RequiredFieldValidator,以便您可以获得更有用的错误消息。

现在您的ValidationExpression应该是\d{9}

+0

你为什么不推荐使用该属性?它叫什么名字? – abatishchev 2010-01-20 15:23:24

+0

Woops我的错。我误解了。我会编辑我的回复。如果它存在,我仍然不会推荐它,因为错误消息不太有用。当我的经验非常清晰明确时,错误会更好地工作。 – Min 2010-01-20 15:27:29

1

大多数asp.net验证器在没有文本时不会触发。这主要介绍了需要额外的RequiredFieldValidator,你应该加上:当是默认输入的文本

<asp:RequiredFieldValidator id="RequiredFieldValidator1" 
       ControlToValidate="myTextBox" 
       Display="Static" 
       ErrorMessage="Required field" 
       runat="server"/> 
0

你可以从页面发布剩余的代码,这个位看起来不错,但问题可能在于你正在使用的表单中,你的表单声明中是否有runat =“server”?

尝试添加此:

<asp:RequiredFieldValidator ID="rfv" Display="None" runat="server" ControlToValidate="myTextBox" ErrorMessage="name is required!"></asp:RequiredFieldValidator> 
3

MSDN

注意:如果 输入控件是空的验证成功。如果相关输入 控制所需的值为 ,则除 RegularExpressionValidator控件外,还需使用RequiredFieldValidator 控件。

相关问题