【问题标题】:validation of a string inside a text box (without Using CustomValidators)验证文本框中的字符串(不使用 CustomValidators)
【发布时间】:2011-12-16 22:26:07
【问题描述】:

我有一个如下所示的文本框:

<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>

如您所见,该文本框中有一个默认文本 =“用户名”。
我应该为这个文本框使用哪个验证器来达到以下目的:

当 Text="User Name" 或 Text="" 返回 false。
当文本!="用户 Name" 或 Text!="" 返回 true。

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

【问题讨论】:

  • 您确实知道可以将验证器设置为使用客户端验证,这样就没有回发,对吧?您将使用 CompareValidator,而不是 CustomValidator...如果您愿意,也可以使用纯 javascript 来完成,但不是那么容易。
  • @David Stratton 感谢关注/我如何使用 CompareValidator 来达到这个目的? (我应该使用两个 CompareValidator 吗?如果是,我如何使用一个 CompareValidator?)
  • 此外,我知道我们可以使用 javascript。但我正在研究 VS 中的验证器组件。

标签: c# asp.net validation textbox


【解决方案1】:

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

我下面的语法可能略有偏差。我不在带有 Visual Studio 的 PC 附近,所以我在做这件事。如果我拼写错误,请原谅我。

<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" />

【讨论】:

    【解决方案2】:

    您是否考虑过使用 Ajax Control Toolkit 的 TextBox WaterMark 将您的文本框的背景文本设置为“用户名”您可以设置它,这样一旦用户单击文本框,水印就会消失,用户可以继续输入他们的价值观。如果用户将文本框留空,则文本将被设置回水印的值。

    您可以将其与上述客户端和服务器验证的建议结合使用,以获得更完整的用户体验。

    在这里查看:TextBox Watermark

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多