J'ai deux questions concernant la validation côté client en ASP, relatives à la configuration suivante:ASP validation côté client malheurs
J'ai ce peu de javascript qui applique des styles d'erreur pour former des éléments si elles ne parviennent pas à valider:
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;
L'appel à parent() fait référence à un asp: Panel, qui englobe chaque élément de forme individuelle et ses validateurs. Mon problème est que, si j'affecte plus d'un validateur à un contrôle, et que le premier validateur échoue mais que le second passe, le style 'valide' est appliqué en dernier en raison de l'ordre des opérations. J'ai deux questions à ce sujet. Il est important de noter que je suis extrêmement novice dans JavaScript et que j'ai déjà abusé des publications pour faire toute ma validation.
Question n ° 1:
est-il une bonne source de documentation pour la validation côté client? Je n'arrive pas à trouver quelque chose. Par exemple, d'où vient cet appel Page_ClientValidate()? Quels autres appels puis-je faire? Qu'en est-il de Page_Validators? Quels membres existent dans controltovalidate? Y a-t-il? Est-ce juste un élément DOM? Je sais ce que je veux faire dans ma tête pour résoudre ce problème:
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
Mais je ne sais même pas comment je peux le faire. Donc, encore une fois, y at-il une bonne documentation que je peux utiliser pour résoudre ce problème moi-même?
Question n ° 2:
En supposant que je reçois une bonne réponse à # 1, je vais trouver ce moi-même, mais ...
Comment puis-je faire ce que je décrit dans le pseudo-code ci-dessus ou n'est-ce pas possible comme je l'ai dit?
fantastique, a travaillé après la mode! (Seule différence, mes styles de production sont appelés 'formLayout' pour valide et 'erreur formLayout' pour invalide, essayer de faire $ (". FormLayout error") ou $ (". FormLayout .error") ne fonctionne pas si chaud. – confuzicle
@confuzicle - Les classes (séparées par des espaces) sont traitées de manière indépendante, vous pouvez simplement laisser formLayout sur l'élément, et simplement ajouter et supprimer le Classe "error". –