Validation formulaire javascript

Résolu/Fermé
Weby82 Messages postés 65 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 30 juin 2013 - Modifié par Weby82 le 30/06/2010 à 19:19
Tekuni-DD Messages postés 7 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 6 avril 2011 - 4 avril 2011 à 10:46
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 :

// 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

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 {}
0
Weby82 Messages postés 65 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 30 juin 2013 3
30 juin 2010 à 19:39
j'ai remis
 if (nomfinal && emailfinal && prenomfinal && messagefinal && captchafinal)
return true;
else{ 
alert("Veuillez remplir correctement tous les champs");
return false;
}


Mais ça ne marche tjr pas
0
onSubmit="return verifForm();" ?

Je suggere plus simplement onSubmit="javascript:verifForm();"

bonne soirée.
0
Weby82 Messages postés 65 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 30 juin 2013 3
30 juin 2010 à 23:21
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Weby82 Messages postés 65 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 30 juin 2013 3
1 juil. 2010 à 09:25
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.
0
Tekuni-DD Messages postés 7 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 6 avril 2011
4 avril 2011 à 10:46
T'as mis tout ton code dans une même page??
0