2011-12-16 48 views
1

我有类似下面的文本框:验证在文本框内字符串(不使用CustomValidators)

<asp:TextBox ID="headertxtUserName" runat="server" Text="User Name" onfocus="onfocusOfUserName(this);" 
    onblur="onblurOfUserName(this);" CssClass="header-login-input" ValidationGroup="A" Font-Names="Tahoma"> 
</asp:TextBox> 

当你看到有在文本框中输入默认的文本=“用户名”。
我应该使用这个文本框下面的目的,其验证:

当文本=“用户名”或文本=“”返回false。
当文本!=“用户 名称”或文本!=“”返回true。

我知道我们可以使用CustomValidators!
但我不想要任何回传,所以我该怎么办?

+1

你也明白,验证可以被设置为使用客户端验证,这样就没有回发,对不对?你会使用一个CompareValidator,而不是一个CustomValidator ...如果你喜欢,也可以用纯JavaScript来完成,但并不容易。 – David 2011-12-16 22:30:22

回答

1

您可以将RegularExpressionValidator与RequiredFieldValidator控件结合使用。它将验证客户端上的文本框的值,而无需回传。

我下面的语法可能会稍微偏离。我与Visual Studio不在一台电脑附近,所以我正在做我的头顶。如果我拼写错了,请原谅我。

<asp:TextBox id="UserNameTextBox" runat="server" Text="User Name" /> 
<asp:RegularExpressionValidator id="UserNameTextBoxRegexValidator" runat="Server" ControlToValidate="UserNameTextBox" ValidationExpression="^User Name$" ErrorMessage="please enter a user name" /> 
<asp:RequiredFieldValidator id="UserNameTextBoxRequiredFieldValidator" runat="server" ControlToValidate="UserNameTextBox" ErrorMessage="please enter a user name" /> 
0

你有没有考虑使用Ajax控件工具包的文本框水印设置文本框的背景文字为“用户名”可以,一旦用户点击文本框水印就会消失设置这样,用户可以继续输入其值。如果用户将文本框留空,则文本将被设置回水印的值。

您可以将此与前面的客户端和服务器验证的建议结合使用,以获得更丰富的用户体验。

看看这里:TextBox Watermark