vérification formulaire

Mammouth du PHP | 536 Messages

13 juin 2006, 16:27

Bonjour, je fais un script javascript qui permet de vérifier si des champs d'un formulaire sont correctement saisis

Voila mon code :

Code : Tout sélectionner

function check() { var msg = ""; //ici nous vérifions si le champs nom_etudiant est vide, changeons la couleur du champs et définissons un message d'alerte if (document.log_etudiant.nom_etudiant.value == "") { msg += "Veuillez saisir votre nom\n"; document.log_etudiant.nom_etudiant.style.backgroundColor = "#F3C200"; } //ici nous vérifions si le champs prenom_etudiant est vide, changeons la couleur du champs et définissons un message d'alerte if (document.log_etudiant.prenom_etudiant.value == "") { msg += "Veuillez saisir votre prénom\n"; document.log_etudiant.prenom_etudiant.style.backgroundColor = "#F3C200"; } //ici nous vérifions si le champs adresse_etudiant est vide, changeons la couleur du champs et définissons un message d'alerte if (document.log_etudiant.adresse_etudiant.value == "") { msg += "Veuillez saisir une adresse\n"; document.log_etudiant.adresse_etudiant.style.backgroundColor = "#F3C200"; } //ici nous vérifions si le champs ville_etudiant est vide, changeons la couleur du champs et définissons un message d'alerte if (document.log_etudiant.ville_etudiant.value == "") { msg += "Veuillez saisir une ville\n"; document.log_etudiant.ville_etudiant.style.backgroundColor = "#F3C200"; } //ici nous vérifions si le champs password_etudiant est vide, changeons la couleur du champs et définissons un message d'alerte if (document.log_etudiant.password_etudiant.value == "") { msg += "Veuillez saisir un mot de passe\n"; document.log_etudiant.password_etudiant.style.backgroundColor = "#F3C200"; } //ici nous vérifions si le champs cp_classe est vide, changeons la couleur du champs et définissons un message d'alerte if (document.log_etudiant.cp_etudiant.value == "") { msg += "Veuillez saisir un Code postal\n"; document.log_etudiant.cp_etudiant.style.backgroundColor = "#F3C200"; } //verif mail var email = document.log_etudiant.email_etudiant.value; if (email.search(/^[^._-][a-z0-9._-]+[^._-]@[a-z0-9._-]+([a-z0-9]+[^._-])?[.-]+[a-z]{2,4}$/) == -1) { msg += "Veuillez entrer une adresse mail valide\n"; document.log_etudiant.email_etudiant.style.backgroundColor = "#F3C200"; } //Si aucun message d'alerte a été initialisé on retourne TRUE if (msg == "") return(true); //Si un message d'alerte a été initialisé on lance l'alerte else { alert(msg); return(false); } }
et dans mon formulaire, j'appele donc cette fonction :

Code : Tout sélectionner

<form name="log_etudiant" method="post" action="enregistrement.php" onSubmit="return check();">
Seulement voila, l'enregistrement s'efectue quand même, les variables sont bien passées à la page enregistrement.php.
Les champs qui sont mal saisis apparaissent en jaune (ce qui est normal) mais j'ai pas de message d'erreur?
Pourquoi? qu'est-ce que j'ai fait de mal?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 19672 Messages

13 juin 2006, 19:42

essaye donc "return false;" sans les parenthèses...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 536 Messages

14 juin 2006, 08:05

a mettre après return check() ?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Invité
Invité n'ayant pas de compte PHPfrance

14 juin 2006, 15:31

le

Code : Tout sélectionner

return check();
est l'erreur la plus courante des formulaires qui se valident tout seul.

Il FAUT que l'évènement OnSubmit reçoivent 'false' pour arrêter l'envoi du formulaire.

Mais comme tu dis l'avoir fait, je ne pensess pas que ca vienne de la.

Essayes d'ajouter cela

Code : Tout sélectionner

onSubmit="javascript:return check();"
Et de mettre un
return(false); puis un return false;, etc au tout début de ta fonction, histoire de voir si cela ne viendrai pas de la syntaxe.

Mammouth du PHP | 536 Messages

15 juin 2006, 09:13

maintenant tout marche, j'ai uniquement changer le nom du formulaire et il n'y a plus de probleme..
merci
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!