2014-12-04 3 views
0

Вот мои строки кода:Пользовательские проверки не срабатывает

Для 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. Спасибо!

ответ

1

Ваша кнопка имеет ValidationGroup, но ваш CustomValidator не имеет. Если вы хотите, чтобы ваша кнопка использовала его, вы должны установить то же самое ValidationGroup.

Edit: Вы должны установить ValidateEmptyText="true" в противном случае, он не будет проверять пустое значение.

+0

На самом деле у меня уже есть 'ValidationGroup' для всех из них, но до сих пор не повезло. Я, вероятно, скопировал неправильный код. Простите за это. –

+0

Я только что редактировал мой ответ. –

+0

Два часа ничего, пока вы не пришли! Спасибо чувак! –

Смежные вопросы