自定义验证不火
问题描述:
这里是我的代码行:自定义验证不火
对于Textbox
和CustomValidator
:
<asp:TextBox ID="Edit_Tbox_Email" runat="server" placeholder="Email Address..." CausesValidation="true" ValidationGroup="submission"></asp:TextBox>
<asp:CustomValidator runat="server" ControlToValidate="Edit_Tbox_Email" ID="cv_Email" OnServerValidate="cv_Email_ServerValidate" ErrorMessage="!" data-toggle="tooltip" title="Invalid Input!" ValidationGroup="submission"></asp:CustomValidator>
这是Button
允许用户改变他/她的电子邮件:
<asp:Button ID="Edit_But_Email" runat="server" Text="Change" CssClass="btn btn-small" OnClick="Edit_But_Email_Click" ValidationGroup="submission" CausesValidation="true"/>
在服务器端:
protected void Edit_But_Email_Click(object sender, EventArgs e)
{
if(Page.IsValid)
Edit_Lab_Email.Text = Edit_Tbox_Email.Text;
}
protected void cv_Email_ServerValidate(object source, ServerValidateEventArgs args)
{
string emailRegex = "^\\w+[\\w-\\.]*\\@\\w+((-\\w+)|(\\w*))\\.[a-z]{2,3}$";
if (Edit_Tbox_Email.Text.Length == 0 || Regex.IsMatch(Edit_Tbox_Email.Text, emailRegex))
{
cv_Email.IsValid = false;
}
}
但这里的问题是cv_Email_ServerValidate()
甚至没有触发。基本上,它不验证Textbox
。另外,我不想使用RequiredFieldValidator
和RegularExpressionValidator
。我想将它们的功能合并为一个验证器。尽可能多的我想只使用后面的代码(c#)而不是jQuery。谢谢!
答
你的按钮有一个ValidationGroup
但你的CustomValidator
没有。如果你想让你的按钮失效,你必须设置相同的ValidationGroup
。
编辑: 你必须设置ValidateEmptyText="true"
否则,它不会验证空值。
其实我已经有'ValidationGroup'所有这些,但仍然没有运气。我可能复制了错误的代码。对不起。 – 2014-12-04 16:37:49
我正确地编辑了我的答案。 – 2014-12-04 16:41:13
两个小时没有,直到你来了!谢啦! – 2014-12-04 16:43:36