2014-12-04 155 views
0

這裏是我的代碼行:自定義驗證不火

對於TextboxCustomValidator

<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。另外,我不想使用RequiredFieldValidatorRegularExpressionValidator。我想將它們的功能合併爲一個驗證器。儘可能多的我想只使用後面的代碼(c#)而不是jQuery。謝謝!

回答

1

你的按鈕有一個ValidationGroup但你的CustomValidator沒有。如果你想讓你的按鈕失效,你必須設置相同的ValidationGroup

編輯: 你必須設置ValidateEmptyText="true"否則,它不會驗證空值。

+0

其實我已經有'ValidationGroup'所有這些,但仍然沒有運氣。我可能複製了錯誤的代碼。對不起。 – 2014-12-04 16:37:49

+0

我正確地編輯了我的答案。 – 2014-12-04 16:41:13

+0

兩個小時沒有,直到你來了!謝啦! – 2014-12-04 16:43:36