У меня есть два вопроса относительно проверки на стороне клиента в ASP, относящихся к следующей настройке:
У меня есть этот бит javascript, который применяет стили ошибок к элементам формы, если они не в состоянии проверить:
var val = Page_ClientValidate();
if (!val) {
var i = 0;
for (; i < Page_Validators.length; i++) {
if (!Page_Validators[i].isvalid) {
$("#" + Page_Validators[i].controltovalidate).parent().removeClass("valid").addClass("invalid");
} else {
$("#" + Page_Validators[i].controltovalidate).parent().removeClass("invalid").addClass("valid");
}
}
}
return val;
Вызов parent () ссылается на asp: Panel, которая охватывает каждый отдельный элемент формы и его валидаторы. Моя проблема в том, что, если я назначаю более одного валидатора для элемента управления, и первый валидатор завершается неудачно, но второй проходит, стиль 'valid' применяется последним из-за порядка операций. У меня есть два вопроса по этому поводу. Важно отметить, что я чрезвычайно новичок в JavaScript и ранее просто злоупотреблял обратными ссылками, чтобы выполнить всю мою проверку.
Вопрос № 1:
Есть ли хороший источник документации для проверки на стороне клиента? Кажется, я ничего не могу найти. Например, откуда происходит этот вызов Page_ClientValidate ()? Какие еще звонки я могу сделать? А как насчет Page_Validators? Какие члены существуют в controltovalidate? Есть ли? Это просто элемент DOM? Я знаю, что я хочу сделать в своей голове, чтобы решить эту проблему:
get parent
valid = true
for each validator in parent
if validator does not validate
valid = false
break
if valid
apply valid style
else
apply invalid style
Но я даже не знаю, как я могу это сделать. Итак, опять же, есть ли хорошая документация, которую я могу использовать, чтобы решить эту проблему самостоятельно?
Вопрос № 2:
Если я получу хороший ответ на вопрос № 1, я сам это выясню, но ...
Как мне сделать то, что я описал в псевдокоде выше, или это невозможно сделать так, как я изложил?