Question

J'utilise le fantastique plugin jquery .validate de J & # 246; rn Zaefferer à la basse résistance

J'utilise asp.net, donc une forme longue, bien que la forme soit divisée en 3 sections via un accordéon jQuery avec des boutons permettant de basculer entre les volets accordéon.

Je souhaite que le bouton du volet 1 valide les champs du volet 1, de même que le volet 2, etc.

Évidemment, dans toute autre technologie, j'utiliserais plusieurs formes et je n'aurais aucune difficulté, bien que je ne puisse pas le faire avec .net.

Je pense que ce dont j'ai besoin est presque un $ ('# aspnetForm'). validate (). unbind () ou quelque chose de similaire - à l'accordéon, cliquez sur Je suis demandant de valider à nouveau le formulaire afin que je sache sur quelle page je suis et que je pourrais ensuite configurer de nouvelles règles, etc.

J'ai essayé de supprimer les règles $ ('# aspnetForm'). validate (). rules ('remove') bien qu'il semble que je devrais le faire pour chaque champ plutôt que pour le formulaire lui-même?

Je peux poster tous les exemples de code nécessaires, bien que le script global soit maintenant assez volumineux, il me faudrait donc en extraire des morceaux.

J'espère que je prends le sens logique ci-dessus - en gros, un moyen de clarifier toutes les règles afin de pouvoir en créer de nouvelles, car je suis dans un panel d'accordéon différent, c'est la solution que j'espère, bien que je en difficulté.

Merci beaucoup, Terry

Était-ce utile?

La solution 2

C’est effectivement ce que je faisais, et après quelques travaux prolongés, il semble que l’un des sélecteurs n’a pas été effacé, de sorte que les mauvaises règles ont été chargées.

Maintenant, ils sont résolus, chaque appel à .validate a son propre ensemble de règles, et si vous ne cliquez pas sur l'événement (par exemple), ils ne semblent pas être additifs. Par conséquent, page1.validate avec 3 règles efface toute la page2. Règles de validation.

Merci pour votre contribution si idrumgood, a marqué votre réponse pour dire merci pour toute contribution.

Salut, Terry

Autres conseils

J'essaierais de définir un indicateur lorsqu'une partie du formulaire est affichée, comme

<div id="form_section_1" class="displayed">
     ....
</div>
<div id="form_section_2">
     ....
</div>
<div id="form_section_3">
     ....
</div>

Puis, dans vos règles de validation, rendez-les conditionnelles.

if($('#form_section_1').attr('class').search('displayed') != -1){
     var is_section_1_displayed = true;
}
else{ var is_section_1_displayed = false;

Faites cela pour chacun (peut-être un moyen plus efficace)

Dans vos règles de validation, procédez comme suit:

email: {
         required = is_section_1_displayed;
       }

En supposant que email se trouve dans la première section du formulaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top