2010-11-17 4 views
1

J'essaie de créer une forme multi-étapes en utilisant javascript et div. Je sais comment créer la forme de cette façon, mais le problème est que je veux que les champs de chaque étape soient validés avant de passer au suivant. Exemple: Si l'utilisateur n'a pas rempli un champ obligatoire ou a une erreur dans un champ, la boîte sera surlignée en rouge et ne sera pas portée à l'étape suivante tant qu'elle n'aura pas été corrigée. Je sais comment faire la validation mais pas capable d'arrêter la page. Toute aide serait appréciée.Javascript Formulaire multi-étapes avec validation

Merci!

+0

considéré en utilisant un framework js comme jQuery? – yoda

+0

Avez-vous un bouton suivant que vous souhaitez désactiver jusqu'à ce que tous les champs sont valides, éventuellement avec des champs non valides marqués immédiatement. Ou souhaitez-vous que la validation se produise lorsqu'un bouton est pressé et qu'aucune avance n'est faite? – Orbling

+1

le code source ou la réponse 'purple' – zzzzBov

Répondre

0

Pour arrêter la forme de vous soumettre besoin d'ajouter

<form id="form" onsubmit="validate(); return false;"> 

Valider est votre fonction pour validationg, vous pouvez appeler quelque chose comme ça

document.getElementById('form').submit() 

si le formulaire est valable;)

+1

En fait,' validate() 'ne sera jamais appelé dans ce scénario -' return false; 'terminera le code immédiatement ou générera une erreur. 'validate (this)' devrait renvoyer 'false' si la validation n'arrête pas le formulaire de soumission. –

+0

Votre droite, fixée dans l'exemple. –

+0

Une chose à noter est que tu dois vraiment avoir un retour faux; dans l'onsubmit. "return validate()" ne fonctionnera pas correctement dans "certains" navigateurs. Donc vous devez "valider(), renvoyer faux" –

Questions connexes