我在aspx页面中使用此代码:
<asp:TextBox ID="Email" runat="server" ToolTip="Email" Text="Email" onblur="if (this.value=='') this.value='Email';" onfocus="if (this.value=='Email') this.value='';"></asp:TextBox>
<asp:RegularExpressionValidator ID="revEmail" runat="server" ErrorMessage="Please insert email" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="Email" ControlToValidate="Email" SetFocusOnError="True" Display="None"></asp:RegularExpressionValidator>
但我在文本框中使用 Text =&#34; Search&#34; 以在文本框中使用Watermark属性。请帮我使用Watermark属性和RegularExpressionValidator。
答案 0 :(得分:0)
<asp:TextBox placeholder="Search" .... />
这很容易......所有现代浏览器都支持这种方式,你有没有理由让它与javascript一起使用?是否过于支持旧的IE?
并且就字符串“搜索”未通过验证而言 - 这不是一件好事吗?如果表单在文本框中保留默认“搜索”,您为什么希望表单有效?
但无论如何 - 如果这是你想要的,你可以改变你的正则表达式,就像在另一个答案中,或者你可以做微软做的事情,他们的水印是“someone@email.com”
答案 1 :(得分:0)
如果这就是你所追求的,那么这将接受“电子邮件”和有效的电子邮件地址作为有效令牌:
<asp:TextBox ValidationGroup="Email" ID="Email" runat="server" ToolTip="Email" Text="Email" onblur="if (this.value=='') this.value='Email';" onfocus="if (this.value=='Email') this.value='';"></asp:TextBox>
<asp:RegularExpressionValidator ID="revEmail" runat="server" ErrorMessage="Please insert email" ValidationExpression="Email|(\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)" ValidationGroup="Email" ControlToValidate="Email" SetFocusOnError="True" Display="None"></asp:RegularExpressionValidator>