Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de validation de formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de validation de formulaire

n°2180993
jbboschung
Posté le 17-03-2013 à 16:04:16  profilanswer
 

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
mood
Publicité
Posté le 17-03-2013 à 16:04:16  profilanswer
 

n°2180996
jbboschung
Posté le 17-03-2013 à 16:45:39  profilanswer
 

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
n°2181002
gatsu35
Blablaté par Harko
Posté le 17-03-2013 à 18:20:26  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de validation de formulaire

 

Sujets relatifs
Problème affichage date dans le module de newsProblème pour modifier une fonction
probleme d' erreur synthaxique sur PythonProblème d'exécution de QT [résolu]
problème affichage image dans packageProblème de formulaire javascript validation
probleme validation de formulaire javascriptProblème de validation de formulaire
problème de validation d'un formulaireProbleme de validation de formulaire... page2
Plus de sujets relatifs à : Problème de validation de formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR