Problème de validation de formulaire

Problème de validation de formulaire - HTML/CSS - Programmation

Marsh Posté le 17-03-2013 à 16:04:16    

Bonjour,
 
Je rencontre un soucis avec un script en js pour la validation d'un simple formulaire de contact.
 
Ci-dessous la page html

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.   <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  5.   <meta name="generator" content="PSPad editor, www.pspad.com">
  6.   <title>gestFuite - Contact</title>
  7.  
  8.   <!-- CSS pour formulaire -->
  9.   <link rel="stylesheet" type="text/css" href="css/contact.css" />
  10.   <!-- Appel fonctions js pour controle formulaire -->
  11.   <script type="text/javascript" src="js/contact.js"></script>
  12.   </head>
  13.   <body>
  14.     <form id="contactform" class="rounded" method="post" action="traitement_contact.php" onsubmit="return verifForm(this)" >
  15.     <h3>Formulaire de contact</h3>
  16.    
  17.     <div class="field">
  18.         <label for="nom">Nom:</label>
  19.         <input type="text" class="input" name="nom" id="nom" onblur="verifNom(this)" />
  20.         <p class="hint">Entrer votre nom.</p>
  21.     </div>
  22.    
  23.     <div class="field">
  24.         <label for="email">Email:</label>
  25.         <input type="text" class="input" name="email" id="email" onblur="verifEmail(this)" />
  26.         <p class="hint">Entrer votre email.</p>
  27.     </div>
  28.    
  29.     <div class="field">
  30.         <label for="objet">Objet:</label>
  31.         <input type="text" class="input" name="objet" id="objet" onblur="verifObjet(this)" />
  32.         <p class="hint">Entrer un objet.</p>
  33.     </div>
  34.    
  35.     <div class="field">
  36.         <label for="message">Message:</label>
  37.         <textarea class="input textarea" name="message" id="message" onblur="verifMessage(this)" >
  38.         </textarea>
  39.         <p class="hint">Saisir votre message.</p>
  40.     </div>
  41.    
  42.     <input type="submit" name="envoi"  class="button" value="Submit" />
  43.     </form>
  44.   </body>
  45. </html>


 
et voici mon script contact.js

Code :
  1. // JavaScript Document
  2. // Si erreur, alors le champs en cause est mis en couleur
  3. function surligne(champ, erreur)
  4. {
  5.    if(erreur)
  6.       champ.style.backgroundColor = "#fba";
  7.    else
  8.       champ.style.backgroundColor = "";
  9. };
  10. // On vérifie si le champs nom n'est pas vide
  11. function verifNom(champ)
  12. {
  13.    if(champ.value == "" )
  14.    {
  15.       surligne(champ, true);
  16.       return false;
  17.    }
  18.    else
  19.    {
  20.       surligne(champ, false);
  21.       return true;
  22.    }
  23. };
  24. //On vérifie si l'email entré est bien valide
  25. function verifEmail(champ)
  26. {
  27.    var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
  28.    if(!regex.test(champ.value))
  29.    {
  30.       surligne(champ, true);
  31.       return false;
  32.    }
  33.    else
  34.    {
  35.       surligne(champ, false);
  36.       return true;
  37.    }
  38. };
  39. // On vérifie si le champs objet n'est pas vide
  40. function verifObjet(champ)
  41. {
  42.    if(champ.value == "" )
  43.    {
  44.       surligne(champ, true);
  45.       return false;
  46.    }
  47.    else
  48.    {
  49.       surligne(champ, false);
  50.       return true;
  51.    }
  52. };
  53. // On vérifie si le champs message n'est pas vide
  54. function verifMessage(champ)
  55. {
  56.    if(champ.value == "" )
  57.    {
  58.       surligne(champ, true);
  59.       return false;
  60.    }
  61.    else
  62.    {
  63.       surligne(champ, false);
  64.       return true;
  65.    }
  66. };
  67. // On vérifie si tout le formulaire est bien rempli avant l'envoi
  68. function verifForm(f)
  69. {
  70.    var nomOk = false;
  71.    var emailOk = false;
  72.    var objetOk = false;
  73.    var messageOk = false;
  74.  
  75.    nomOk = verifNom(f.nom);
  76.    emailOk = verifEmail(f.email);
  77.    objetOk = verifObjet(f.objet);
  78.    messageOk = verifMessage(f.message);
  79.    if(nomOk && emailOk && objetOk && messageOk)
  80.    {
  81.       return true;
  82.    }
  83.    else
  84.    {
  85.       alert("Veuillez remplir correctement tous les champs" );
  86.       return false;
  87.    }
  88. };


 
Donc en gros, je vérifie que chaque champs (Nom, Objet et Message) ne soient pas vide, et que le champs 'Email' est une adresse valide.
Si un des champs n'est pas conforme, la zone de saisie se colore en rouge.
Ce contrôle se fait après chaque sortie de champs (onblur) et encore une fois au final, sur le (onsubmit) du formulaire.
 
Normalement, si un des champs n'est pas validé, la valeur 'false' est retournée et le formulaire ne devait pas être envoyé (onsubmit="return(...)" ).
 
Hors que les champs soient remplis ou pas, le formulaire passe outre. Je précise que je suis sous Google Chrome (25), hors apparement sous IE 10, ça fonctionne.
 
 
Inutile de vous préciser que je suis plus que débutant en JS.
Si quelqu'un peut m'expliquer ce quil faudrait faire pour que cela fonctionne aussi sous Google Chrome, je lui en serais très reconnaissant.
 
 
Merci d'avance
 
Salutations


Message édité par jbboschung le 17-03-2013 à 16:20:07
Reply

Marsh Posté le 17-03-2013 à 16:04:16   

Reply

Marsh Posté le 17-03-2013 à 16:45:39    

Re-bonjour,
 
Ayant trouvé la (enfin du moins une) solution, je vais la posté ci-dessous.
 
 
En parcourant le web, je viens de trouver ceci, à savoir modifier l'appel du script js externe.
 
 
Avant j'avais écris ceci

Code :
  1. <script type="text/javascript" src="contact.js"></script>


 
Et maintenant en écrivant ainsi

Code :
  1. <script language="javascript" src="contact.js"></script>


 
ça fonctionne.
 
Je serais néanmoins preneur de connaitre le pourquoi du comment.
 
Salutations


Message édité par jbboschung le 17-03-2013 à 16:46:19
Reply

Marsh Posté le 17-03-2013 à 18:20:26    

c'est qu'il y a un probleme car normalement la vraie norme est type="text/javascript"
 
Language="javascript" n'a plus cours du tout


---------------
Blablaté par Harko
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed