2013-07-03 4 views
0

У меня есть страница aspx с three textbox controls, и я хочу do validation для всех. Я хочу показать сообщение об ошибке в последовательности, например, если я оставил все три text boxes empty и нажмите кнопку отправки, сначала будет show error message для первого текстового поля, а затем, когда я заполню первое текстовое поле и снова нажмите save, показывает сообщение об ошибке для второго текстового поля и так далее.проверка шаг за шагом

Это означает, что я хочу показывать только одно сообщение об ошибке после нажатия кнопки отправки. Можете ли вы предложить мне путь.

+0

Это не проблема для пользователя? – Alan

+0

его требование пользователя ...... – Chandra

ответ

0

Вы можете сделать это, проверяя при отправке формы и отправляя обратно в литерал с сообщениями об ошибках. Проверка обратной обратной связи лучше, чем просто полагаться на javascript в любом случае.

Так, в зависимости от уровня проверок, которые вы хотите использовать, вы могли бы сделать что-то вроде:

protected void btnSubmit_Click(object sender, eventArgs e) 
{ 
    if(String.IsNullOrEmpty(txtBox1.Text)) 
    { 
    ltError.Text = "Sorry, error message for box1"; 
    return; 
    } 
} 

Очевидно, что вы хотите работать в более сдержек и после прохождения stage1 вы бы перейти на 2-й ступени Не очень хорошо работает, но будет работать.

0

вы можете вернуть значение функции как этот

public string CheckValidation() 
{ 
    if (txtFirstName.Text.Trim().Equals(string.Empty)) 
     return "Please enter firstname"; 

    if (txtLastName.Text.Trim().Equals(string.Empty)) 
     return "Please enter lastname"; 
} 

и так далее в соответствии с вашими полями проверки.

Надеется, что это поможет вам

0

Вы можете использовать инструментарий управления AJAX? Элементы управления VaidatorCallout ведут себя таким образом, и вы получаете хороший маленький воздушный шар, указывающий, где ошибка.

ASP.NET Validator Callout

0

Я рекомендую <asp:CustomValidator> управления для каждого текстового поля. Вы можете использовать что-то вроде следующего для подпрограмм пользовательской проверки:

var textBox1IsValid = function textBox1IsValid(sender, args) { 
    var tb = document.getElementById('TextBox1'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    arg.IsValid = resultOfValidation; 
    return resultOfValidation; 
}, 
textBox2IsValid = function textBox2IsValid(sender, args) { 
    var tb = document.getElementById('TextBox2'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    //return either the validity of TextBox2 
    //or (if TextBox1 is not valid) return true so the 
    //validator for TextBox2 doesn't fire. 
    arg.IsValid = resultOfValidation || !textBox1IsValid(sender, args); 
    return resultOfValidation; 
}, 
textBox3IsValid = function textBox3IsValid(sender, args) { 
    var tb = document.getElementById('TextBox3'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    //return either the validity of TextBox3 
    //or (if either TextBox1 or TextBox2 is not valid) return 
    //true so the validator for TextBox3 doesn't fire. 
    arg.IsValid = resultOfValidation || !textBox1IsValid(sender, args) || !textBox2IsValid(sender, args); 
    return resultOfValidation; 
}; 

Преимущество этого подхода заключается в том, что TextBox2 и TextBox3 вернется в силе, если их содержание являются действительными или если TextBox1 не является действительным. Это приведет к срабатыванию только одного валидатора за раз, пока все поля не будут действительны. Это также немного более гибким, как пользовательская процедура проверки может проверить:

  • требуемого поля
  • шаблону
  • значение сравнения

или любой другой проверки, что вам нужно, все обернутые в одну функцию.

Недостатком является то, что вам также потребуется дублировать логику проверки на стороне сервера.

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