Я рекомендую <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
не является действительным. Это приведет к срабатыванию только одного валидатора за раз, пока все поля не будут действительны. Это также немного более гибким, как пользовательская процедура проверки может проверить:
- требуемого поля
- шаблону
- значение сравнения
или любой другой проверки, что вам нужно, все обернутые в одну функцию.
Недостатком является то, что вам также потребуется дублировать логику проверки на стороне сервера.
Это не проблема для пользователя? – Alan
его требование пользователя ...... – Chandra