Validation formulaire javascript
Résolu
Weby82
Messages postés
65
Date d'inscription
Statut
Membre
Dernière intervention
-
Tekuni-DD Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Tekuni-DD Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai parcouru un peu les différents topic du forum pour essayer de faire mon formulaire javascript, et tout marche bien sauf la validation final a l'envoi du formulaire. seul le php m'indique les erreur maisje n'ai pas l'alerte du javascript, pourtant il me semblait que mon code était correct. (pour info j'ai commencé le javascript vendredi dernier ^^')
Je vous colle mon code Js et le formulaire :
le formulaire :
Comme vous voyez j'ai une double vérification, si le javascript est desactiver c'est le php qui verifie.
Donc quand je valide le formulaire j'ai bien les erreur qui s'affiche via le php mais pas l'erreur javascript. j'ai du mal ecrire la derniere fonction
J'ai parcouru un peu les différents topic du forum pour essayer de faire mon formulaire javascript, et tout marche bien sauf la validation final a l'envoi du formulaire. seul le php m'indique les erreur maisje n'ai pas l'alerte du javascript, pourtant il me semblait que mon code était correct. (pour info j'ai commencé le javascript vendredi dernier ^^')
Je vous colle mon code Js et le formulaire :
// Vérifier le champ nom verifname = function(){ var name = document.formcontact.nom; var string = name.value; var nbrlettre = string.length; var labnom = document.getElementById("labnom"); if (nbrlettre < 2) { name.style.borderColor="red"; labnom.style.color="red"; return false; } else { name.style.border="1px solid #090"; labnom.style.color="#6197b2"; return true; } } //vérifier prenom verifprenom = function(){ var prenom = document.formcontact.prenom; var string = prenom.value; var nbrlettre = string.length; var labprenom = document.getElementById("labprenom"); if (nbrlettre < 2) { prenom.style.borderColor="red"; labprenom.style.color="red"; return false; } else { prenom.style.border="1px solid #090"; labprenom.style.color="#6197b2"; return true; } } //vérifier l'email function verifmail() { var labemail= document.getElementById("labemail"); var mail = document.formcontact.email; var re=RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$"); if(!re.test(mail.value)) { mail.style.borderColor="red"; labemail.style.color="red"; return false; } else { mail.style.border="1px solid #090"; labemail.style.color="#6197b2"; return true; } } // vérification du champ message function verifmessage(){ var labmessage = document.getElementById("labmessage"); var message = document.formcontact.message; var stringmessage = message.value; var longmessage = stringmessage.length; if(longmessage < 10){ message.style.borderColor="red"; labmessage.style.color="red"; return false; } else { message.style.border="1px solid #090"; labmessage.style.color="#6197b2"; return true; } } // vérification si le captcha est rempli function verifCaptcha(){ var labelcaptcha = document.getElementById("labelcaptcha"); var captcha = document.formcontact.asa; var resultcaptcha = document.formcontact.asb.value; if(captcha == ""){ captcha.style.borderColor="red"; labelcaptcha.style.color="red"; return false; } else{ captcha.style.border="1px solid #090"; labelcaptcha.style.color="#6197b2"; } } //vérification final (c'est la ou j'ai le souci je pense ...) function verifForm(form){ var nomfinal=verifnom(form.nom); var prenomfinal=verifprenom(form.prenom); var emailfinal=verifmail(formt.email); var messagefinal=verifmessage(form.message); var captchafinal=verifCaptcha(form.asa); if (nomfinal && emailfinal && prenomfinal && messagefinal && captchafinal) return true; alert("Veuillez remplir correctement tous les champs"); return false; }
le formulaire :
<?php include_once("antispam.php"); $erreur =''; // si on clic sur submit if (isset($_POST['submit'])){ if (isset($_POST['nom'])) { //marque que des donnée on été envoyé par post $nom=$_POST['nom']; if(strlen($nom) < 2) $erreur.= '- Mauvais format de nom<br />'; } if (isset($_POST['prenom'])) { //marque que des donnée on été envoyé par post $prenom=$_POST['prenom']; if(strlen($nom) < 2) $erreur.= '- Mauvais format de prenom<br />'; } if (isset($_POST['mail'])) { //marque que des donnée on été envoyé par post $mail=$_POST['mail']; if(empty($mail)){ $erreur.= '- Indiquer votre mail<br />';} elseif (!preg_match(''^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4})$'',$mail)){ $erreur.= '- Mauvais format de mail<br />'; } } if (antispam_check() == false) { // l'addition est fausse $erreur .="- Résultat du calcul incorrect, veuillez réessayer svp !<br />"; } if (isset($_POST['message'])) { //marque que des donnée on été envoyé par post $texte= $_POST["message"]=trim(stripslashes(htmlentities($_POST['message'],ENT_QUOTES,'UTF-8'))); if(strlen($texte) < 15) $erreur.= '- Indiquer un message plus long<br />'; } if(isset($_POST["raison"])) { //for ($i=0;$i<count($_POST["raison"]);$i++) { //$raison= ($_POST["raison"][$i]) . ", "; $raison=implode(",",$_POST["raison"]); } // si pas d'erreur j'affiche que le message a bien été envoyé if ($erreur =="") { $genre= $_POST['genre']; $tel= $_POST['tel']; $dep= $_POST['departement']; echo "<h3>Votre formulaire a bien été envoyé</h3>"; //envoi de mail $to = 'nom<mail> '; $subject = 'Message du site Webdesigner'; $message = "$genre" . "<br />"; $message .= "Nom : $nom"."<br />"; $message .= "Prenom : $prenom" . "<br />"; $message .= "Mail : $mail" . "<br />"; $message .= "Tel : $tel" . "<br />"; $message .= "Departement : $dep" . "<br />"; $message .= "Objet du contact : " . $raison . "<br />"; $message .= "$texte" . "<br />"; // $message = wordwrap($message, 70, "\n"); //pour aller a ligne au bout de 70 cacartere pour eviter de passer en spam en format texte, on l'enleve en html // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // En-têtes additionnels $headers .= 'To: nom<mail>' . "\r\n"; $headers .= 'From:' . $nom . " " . $prenom . '<' . $mail . '>' . "\r\n"; // $headers = 'Reply-To: webmaster@example.com' . "\r\n" . //'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); } } ?> <form method="post" onSubmit="return verifForm();" action="" name="formcontact"> <fieldset> <legend>Formulaire de contact</legend> <?php if (!isset($_POST['submit']) || !empty($erreur)){ //si je n'ai pas verifié le formulaire ou si j'ai des erreurs //j'affiche le message d'erreur if(!empty($erreur)) echo "<span style='color:red;font-weight:bold;'>" . $erreur . "</span>" . "<br />"; ?> <div class="genre"> <label> <input type="radio" name="genre" value="mlle" id="genre_0" /> Mlle</label> <label> <input type="radio" name="genre" value="mme" id="genre_1" /> Mme</label> <label> <input type="radio" name="genre" value="mr" id="genre_2" /> M.</label> </div> <br /> <div class="ligne"><label id="labnom" class="gauche">Nom*</label><input class="gauche" id="nom" name="nom" type="text" onblur="verifname();" value="<?php if (!empty($_POST["nom"])) { // réafficher si deja saisi echo htmlspecialchars($_POST["nom"],ENT_QUOTES); } ?>" /><label id="labprenom" class="droite">Prénom*</label><input class="droite" name="prenom" id="prenom" type="text" onblur="verifprenom();" value="<?php if (!empty($_POST["prenom"])) { // réafficher si deja saisi echo htmlspecialchars($_POST["prenom"],ENT_QUOTES); } ?>" /> </div><div class="clear"></div><br /> <div class="ligne"><label id="labemail" class="gauche">Mail*</label><input class="gauche" name="mail" id="email" type="text" onblur="verifmail();" value="<?php if (!empty($_POST["mail"])) { // réafficher si deja saisi echo htmlspecialchars($_POST["mail"],ENT_QUOTES); } ?>" /><label class="droite">Tel</label><input class="droite" name="tel" type="text" value="<?php if (!empty($_POST["tel"])) { // réafficher si deja saisi echo htmlspecialchars($_POST["tel"],ENT_QUOTES); } ?>" /></div><br /> <label><select name="departement"> <option value="">Département</option><br/> <option value="01">01-Ain</option><br/> <option value="02">02-Aisne</option><br/> <option value="03">03-Allier</option><br/> <option value="04">04-Alpes de haute provence</option><br/> <option value="05">05-Hautes alpes</option><br/> <option value="06">06-Alpes maritimes</option><br/> <option value="07">07-Ardèche</option><br/> <option value="08">08-Ardennes</option><br/> </select></label> <br /><br /> <strong>Raison du contact : </strong><br /> <label><input name="raison[]" type="checkbox" value="Logo" />Logo</label> <label><input name="raison[]" type="checkbox" value="affiche" />Affiche</label> <label><input name="raison[]" type="checkbox" value="charte" />Charte graphique</label> <label><input name="raison[]" type="checkbox" value="graphisme" />Graphisme Site web</label><br /> <label><input name="raison[]" type="checkbox" value="vitrine" />Site vitrine</label> <label><input name="raison[]" type="checkbox" value="cms" />Intégration CMS(joomla, wordpress)</label> <label><input name="raison[]" type="checkbox" value="autre" />Autre ...</label> <br/><br /> <label id="labmessage">Votre message* :<br /> <textarea name="message" id="message" onblur="verifmessage();"><?php if (isset($_POST["message"])) { // le message a été saisi: le réafficher echo htmlspecialchars($_POST["message"],ENT_QUOTES); } ?></textarea><br/><br/> <p>Résultat du calcul ci-dessous*: addition ou soustraction, le résultat peut-etre négatif. <br />Ex: 1-4 taper: -3 (Ceci est une sécurité anti-spam)</p> <?php antispam_ins(); ?> <div class="bouton"> <input name="submit" type="submit" value="Envoyer" id="submit" /><input name="annuler" type="reset" value="Annuler" id="reset" /></div> *Champ obligatoire<br /> Les champs signalés en rouge sont mal remplis </fieldset> </form> <?php } ?>
Comme vous voyez j'ai une double vérification, si le javascript est desactiver c'est le php qui verifie.
Donc quand je valide le formulaire j'ai bien les erreur qui s'affiche via le php mais pas l'erreur javascript. j'ai du mal ecrire la derniere fonction
A voir également:
- Validation formulaire javascript
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Temps validation annonce le bon coin - Forum Hotmail / Outlook.com
- A javascript error occurred in the main process - Forum Matériel & Système
6 réponses
if (nomfinal && emailfinal && prenomfinal && messagefinal && captchafinal)
return true;
}
else{
alert("Veuillez remplir correctement tous les champs");
return false;
}
Il semblerait dans un premier temps qu'il manque la condition alternative via le ELSE {}
return true;
}
else{
alert("Veuillez remplir correctement tous les champs");
return false;
}
Il semblerait dans un premier temps qu'il manque la condition alternative via le ELSE {}
j'ai remis
Mais ça ne marche tjr pas
if (nomfinal && emailfinal && prenomfinal && messagefinal && captchafinal) return true; else{ alert("Veuillez remplir correctement tous les champs"); return false; }
Mais ça ne marche tjr pas
onSubmit="return verifForm();" ?
Je suggere plus simplement onSubmit="javascript:verifForm();"
bonne soirée.
Je suggere plus simplement onSubmit="javascript:verifForm();"
bonne soirée.
Non ça ne change rien :/
Je n'arrive pas a trouver d'ou viens l'erreur.
Il doit y avoir une autre façon d'écrire cette vérification, mais je n'arrive pas a trouver quelque chose qui correspond à mon formulaire et je ne m'y connais pas encore assez....
bonne soirée
Je n'arrive pas a trouver d'ou viens l'erreur.
Il doit y avoir une autre façon d'écrire cette vérification, mais je n'arrive pas a trouver quelque chose qui correspond à mon formulaire et je ne m'y connais pas encore assez....
bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
auto résolu .... j'suis un boulet ...
merci firebug qui m'a fait m'apercevoir que j'ai créé la fonction verifname() mais que j'appel dans la fonction final verifnom() ... c'est ça quand on fait moitié anglais moitié français ....
En tout cas ceux qui veulent mon formulaire ne vous gênez pas, y'aura juste le captcha à changer car je n'ai pas mis le code du fichier captcha.php car il n'est pas de moi.
merci firebug qui m'a fait m'apercevoir que j'ai créé la fonction verifname() mais que j'appel dans la fonction final verifnom() ... c'est ça quand on fait moitié anglais moitié français ....
En tout cas ceux qui veulent mon formulaire ne vous gênez pas, y'aura juste le captcha à changer car je n'ai pas mis le code du fichier captcha.php car il n'est pas de moi.