formulaire /// corrections

formulaire /// corrections - HTML/CSS - Programmation

Marsh Posté le 09-03-2006 à 11:55:43    

Bonjour,
j'ai besoin d'un coup de main pour une petite modification d'un script de formulaire.
J'aimerai que lorsque la personne fait faux , que mon input ait une bordure rouge, voir en plus de remplissage d'une couleur...
Actuellement j'ai uniquement le texte qui se met en rouge dont voici mon code javascript.

Code :
  1. // JavaScript Document
  2. function verif() {
  3. var err = 0;
  4. if(document.getElementById("nom" ).value == '') {
  5.  document.getElementById("label_nom" ).className = 'error';
  6.  err = 1;
  7. } else {
  8.  document.getElementById("label_nom" ).className = '';
  9. }
  10. if(document.getElementById("email" ).value == '' || validerEmail() == false) {
  11.  document.getElementById("label_email" ).className = 'error';
  12.  err = 1;
  13. } else {
  14.  document.getElementById("label_email" ).className = '';
  15. }
  16. if(document.getElementById("message" ).value == '') {
  17.  document.getElementById("label_message" ).className = 'error';
  18.  err = 1;
  19. } else {
  20.  document.getElementById("label_message" ).className = '';
  21. }
  22. if(err === 0) {
  23.  return true;
  24. } else {
  25.  return false;
  26. }
  27. }
  28. function validerEmail() {
  29. if (!document.getElementById("email" ).value.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/)) {
  30.  document.getElementById("label_email" ).className = 'error';
  31.  return false;
  32. } else {
  33.  document.getElementById("label_email" ).className = '';
  34.  return true;
  35. }
  36. }


 
 
La classe error est pour le texte en rouge.
 
Qui peut m'aider :pt1cable:  
 
Merci  
vita

Reply

Marsh Posté le 09-03-2006 à 11:55:43   

Reply

Marsh Posté le 09-03-2006 à 13:34:59    

ben pour le input, dans le css, tu définis une classe qui a des bordures rouges et comme pour ton texte, en cas d'erreur, tu affectes le nom de la classe "bordure rouge" au input...

Reply

Marsh Posté le 09-03-2006 à 16:00:25    

Salut et concrétement ça donne quoi dans mon javascript?
si  
#
if(document.getElementById("email" ).value == '' || validerEmail() == false) {
#
        document.getElementById("label_email" ).className = 'error';
#
        err = 1;
#
    } else {
#
        document.getElementById("label_email" ).className = '';
#
    }
 
 
Je mets où input ?  
Merci pour l'aide
 
PS: Débutant javascript

Reply

Marsh Posté le 09-03-2006 à 16:56:50    

si j'ai bien compris, "email" est le nom de l'un de tes input.
donc : document.getElementById("email" ).className = 'error';

Reply

Marsh Posté le 10-03-2006 à 07:59:47    

et le HTML de ton formulaire ?

Reply

Marsh Posté le 14-03-2006 à 10:52:29    

gatsu35 a écrit :

et le HTML de ton formulaire ?


Bonjour et merci pour toutes ces réponses:
 
Maintenant que j'ai fini le formulaire, un dernier soucis est encore là:
Lorsque l'internate arrive sur la page, le navigateur IE  met un message d'erreur : l'éternel pop up:: comme la musique!
Comment éviter ceci , je comprends bien que c'est un javascript... y-a-t-il un moyen de contourner?
 voici le code  :p  

Code :
  1. <form action="http://www.cgi4all.org/cgi-bin/formmail.cgi" method="post"  onsubmit="return verif();">
  2.     <input type="hidden" name="recipient" value="appart@vitamine-c.ch"/> 
  3.                 <input type="hidden" name="redirect" value="http://www.auto-ecole-daniel.ch"/>
  4.       <fieldset>
  5.     <div class="espace">
  6.               <label for="samaritains">
  7.                 Samaritains
  8.               </label>
  9.     <select name="date samaritains">
  10.                       <option value="cours A"> Choisir une date </option>
  11.                       <option value="cours A"> 7 mars 2006 17h00 </option>
  12.                       <option value="cours sA"> 15 mars 2006 17h00 </option>
  13.                       <option value="cours V"> 18 mars 2006 17h15 </option>
  14.                     </select>
  15.     </div>
  16.             <div class="espace">
  17.               <label for="samaritains">
  18.                 Sensibilisation
  19.               </label>
  20.               <select name="date sensibilisation">
  21.                 <option value="cours s">
  22.                 Choisir une date
  23.                 </option>
  24.                 <option value="cours s">
  25.                 7 mars 2006 17h00
  26.                 </option>
  27.                 <option value="cours s">
  28.                 15 mars 2006 17h00
  29.                 </option>
  30.                 <option value="cours s">
  31.                 18 mars 2006 17h15
  32.                 </option>
  33.               </select>
  34.             </div>
  35.     <div class="espace">
  36.     <label for="nom" id="label_nom">Nom <span>*</span></label> <input type="text" name="nom" id="nom" /></div>
  37.       <div class="espace">
  38.               <label for="prenom" id="label_prenom">
  39.                 Prénom
  40.                 <span>
  41.                   *
  42.                 </span>
  43.               </label>
  44.               <input type="text" name="prenom" id="prenom" />
  45.             </div>
  46.             <div class="espace">
  47.               <label for="adresse" id="label_adresse">
  48.                 Adresse
  49.                 <span>
  50.                   *
  51.                 </span>
  52.               </label>
  53.               <input type="text" name="adresse" id="adresse" />
  54.             </div>
  55.             <div class="espace">
  56.               <label for="postal" id="label_postal">
  57.                 N° postal
  58.                 <span>
  59.                   *
  60.                 </span>
  61.               </label>
  62.               <input type="text" name="postal" id="postal" />
  63.             </div>
  64.             <div class="espace" >
  65.               <label for="ville" id="label_ville">
  66.                 Ville
  67.                 <span>
  68.                   *
  69.                 </span>
  70.               </label>
  71.               <input type="text" name="ville" id="ville" />
  72.             </div>
  73.             <div class="espace">
  74.               <label for="telephone" id="label_telephone">
  75.                 Téléphone
  76.                 <span>
  77.                   *
  78.                 </span>
  79.               </label>
  80.               <input type="text" name="telephone" id="telephone" />
  81.             </div>
  82.             <div class="espace">
  83.               <label for="email" id="label_email">Email <span>*</span></label> <input type="text" name="email" id="email" />
  84.             </div>
  85.         <div class="espace">
  86.      <label for="message" id="label_message">Message <span>*</span></label> <textarea wrap="hard" name="message" id="message" cols="40" rows="5"></textarea></div>
  87.  <div class="espace"><input type="submit" class="envoyer" value="Envoyer" /></div>
  88.    </fieldset>
  89.    </form>


et javascript

Code :
  1. // JavaScript Document
  2. function verif() {
  3. var err = 0;
  4. if(document.getElementById("nom" ).value == '') {
  5.  document.getElementById("label_nom" ).className = 'error';
  6.  err = 1;
  7. } else {
  8.  document.getElementById("label_nom" ).className = '';
  9. }
  10. if(document.getElementById("prenom" ).value == '') {
  11.  document.getElementById("label_prenom" ).className = 'error';
  12.  err = 1;
  13. } else {
  14.  document.getElementById("label_prenom" ).className = '';
  15. }
  16. if(document.getElementById("adresse" ).value == '') {
  17.  document.getElementById("label_adresse" ).className = 'error';
  18.  err = 1;
  19. } else {
  20.  document.getElementById("label_adresse" ).className = '';
  21. }
  22. if(document.getElementById("postal" ).value == '') {
  23.  document.getElementById("label_postal" ).className = 'error';
  24.  err = 1;
  25. } else {
  26.  document.getElementById("label_postal" ).className = '';
  27. }
  28. if(document.getElementById("ville" ).value == '') {
  29.  document.getElementById("label_ville" ).className = 'error';
  30.  err = 1;
  31. } else {
  32.  document.getElementById("label_ville" ).className = '';
  33. }
  34. if(document.getElementById("telephone" ).value == '') {
  35.  document.getElementById("label_telephone" ).className = 'error';
  36.  err = 1;
  37. } else {
  38.  document.getElementById("label_telephone" ).className = '';
  39. }
  40. if(document.getElementById("email" ).value == '' || validerEmail() == false) {
  41.  document.getElementById("label_email" ).className = 'error';
  42.  err = 1;
  43. } else {
  44.  document.getElementById("label_email" ).className = '';
  45. }
  46. if(document.getElementById("message" ).value == '') {
  47.  document.getElementById("label_message" ).className = 'error';
  48.  err = 1;
  49. } else {
  50.  document.getElementById("label_message" ).className = '';
  51. }
  52. if(err === 0) {
  53.  return true;
  54. } else {
  55.  return false;
  56. }
  57. }
  58. function validerEmail() {
  59. if (!document.getElementById("email" ).value.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/)) {
  60.  document.getElementById("label_email" ).className = 'error';
  61.  return false;
  62. } else {
  63.  document.getElementById("label_email" ).className = '';
  64.  return true;
  65. }
  66. }


 
Merci de votre aide
vita

Reply

Marsh Posté le 14-03-2006 à 11:00:36    

pour eviter ce meessage d'erreur faut regarder la ligne d'où vient cette erreur :
   if(err === 0)  
tu le transforme en if( err==0)
 
sinon tu aurais pu faire un tableau avec tous les id et checker ce tableau tu aurai perdu beaucoup moins de temps à taper

Reply

Marsh Posté le 14-03-2006 à 11:05:46    

excusez moi c'est pas une reponse à votre message, mais j'ai besoin d'aide pour faire un petit programme en matlab qui trace 2 ou 3 cercles de rayon et centre connus ensuite calculet le point d'intersection entre ces cercle. merci pour votre aide

Reply

Marsh Posté le 14-03-2006 à 11:08:21    

si tu jouais pas ton boulet et que tu te créais ton propre topic dans la catégorie adequat merci

Reply

Marsh Posté le 14-03-2006 à 14:12:39    

gatsu35 a écrit :

pour eviter ce meessage d'erreur faut regarder la ligne d'où vient cette erreur :
   if(err === 0)  
tu le transforme en if( err==0)
 
sinon tu aurais pu faire un tableau avec tous les id et checker ce tableau tu aurai perdu beaucoup moins de temps à taper


 
 
Salut,
Merci pour ta réponse, mais ça ne change pas grand chose, voir rien :pt1cable:  
 
voici le message d'erreur : ( en haut dessous de barre IE)
" Pour vous aider à protéger votre ordinateur, Internet Explorer à restreint l'affichage du contenu actif de ce fichier, qui pourrait accéder à votre ordinateur. Cliquez ici pour plus d'option"
 
Et dans le cas de non acceptation, le javascript ci-dessus n'est pas actif.
 
Merci de ton aide
vita :ouch:  
 

Reply

Marsh Posté le 14-03-2006 à 14:12:39   

Reply

Marsh Posté le 14-03-2006 à 14:32:06    

J'ai essayé ton code sur IE 6.0.29 sur un XP-SP2 marche très bien, sur FF aussi d'ailleurs ...  
 
Tiens voila exactement le code que j'ai testé ( au départ j'ai pris exactement le tien puis je l'ai un peu modifié parce que c'était pas top):

Code :
  1. <?xml version="1.0"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4.   <head>
  5.     <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  6.     <title>Test</title>
  7.     <style type="text/css">
  8.     .error{
  9.       background-color:red;
  10.     }
  11.     </style>
  12.   <script type="text/javascript">
  13.   function verif() {
  14.     var err = 0;
  15.     var fields = new Array('nom', 'prenom', 'adresse', 'postal', 'ville', 'telephone', 'email', 'message');
  16.     for(var i=0; i<fields.length; i++){
  17.       if(document.getElementById(fields[i]).value == '') {
  18.         document.getElementById("label_"+fields[i]).className = 'error';
  19.         err++;
  20.       } else {
  21.         document.getElementById("label_"+fields[i]).className = '';
  22.       }
  23.     }
  24.     if( validerEmail('email') ) {
  25.       document.getElementById("label_email" ).className = '';
  26.     } else {
  27.       document.getElementById("label_email" ).className = 'error';
  28.       err++;
  29.     }
  30.    return ! err;
  31.   }
  32.   function validerEmail(idInput) {
  33.     if (!document.getElementById(idInput).value.match(/^[\w>\-]+@([\w\-]+> )+[a-zA-Z]+$/)) {
  34.       return false;
  35.     }
  36.     return true;
  37.   }
  38.   </script>
  39.   </head>
  40.   <body>
  41.     <form action="http://www.cgi4all.org/cgi-bin/formmail.cgi" method="post" onsubmit="return verif();">
  42.       <input type="hidden" name="recipient" value="appart@vitamine-c.ch" />
  43.       <input type="hidden" name="redirect" value="http://www.auto-ecole-daniel.ch" />
  44.       <fieldset>
  45.         <div class="espace">
  46.           <label for="samaritains"> Samaritains </label>
  47.           <select name="date samaritains">
  48.             <option value="cours A"> Choisir une date </option>
  49.             <option value="cours A"> 7 mars 2006 17h00 </option>
  50.             <option value="cours sA"> 15 mars 2006 17h00 </option>
  51.             <option value="cours V"> 18 mars 2006 17h15 </option>
  52.           </select>
  53.         </div>
  54.         <div class="espace">
  55.           <label for="samaritains"> Sensibilisation </label>
  56.           <select name="date sensibilisation">
  57.             <option value="cours s"> Choisir une date </option>
  58.             <option value="cours s"> 7 mars 2006 17h00 </option>
  59.             <option value="cours s"> 15 mars 2006 17h00 </option>
  60.             <option value="cours s"> 18 mars 2006 17h15 </option>
  61.           </select>
  62.         </div>
  63.         <div class="espace">
  64.           <label for="nom" id="label_nom">Nom <span>*</span></label>
  65.           <input type="text" name="nom" id="nom" />
  66.         </div>
  67.         <div class="espace">
  68.           <label for="prenom" id="label_prenom"> Prém * </label>
  69.           <input type="text" name="prenom" id="prenom" />
  70.         </div>
  71.         <div class="espace">
  72.           <label for="adresse" id="label_adresse"> Adresse * </label>
  73.           <input type="text" name="adresse" id="adresse" />
  74.         </div>
  75.         <div class="espace">
  76.           <label for="postal" id="label_postal"> N° postal * </label>
  77.           <input type="text" name="postal" id="postal" />
  78.         </div>
  79.         <div class="espace">
  80.           <label for="ville" id="label_ville"> Ville * </label>
  81.           <input type="text" name="ville" id="ville" />
  82.         </div>
  83.         <div class="espace">
  84.           <label for="telephone" id="label_telephone"> Téphone * </label>
  85.           <input type="text" name="telephone" id="telephone" />
  86.         </div>
  87.         <div class="espace">
  88.           <label for="email" id="label_email">Email *</label>
  89.           <input type="text" name="email" id="email" />
  90.         </div>
  91.         <div class="espace">
  92.           <label for="message" id="label_message">Message *</label>
  93.           <textarea wrap="hard" name="message" id="message" cols="40" rows="5"></textarea>
  94.         </div>
  95.         <div class="espace">
  96.           <input type="submit" class="envoyer" value="Envoyer" />
  97.         </div>
  98.       </fieldset>
  99.     </form>
  100.   </body>
  101. </html>

Message cité 1 fois
Message édité par anapajari le 14-03-2006 à 14:35:49
Reply

Marsh Posté le 14-03-2006 à 14:35:01    

vita 100 a écrit :

Salut,
Merci pour ta réponse, mais ça ne change pas grand chose, voir rien :pt1cable:  
 
voici le message d'erreur : ( en haut dessous de barre IE)
" Pour vous aider à protéger votre ordinateur, Internet Explorer à restreint l'affichage du contenu actif de ce fichier, qui pourrait accéder à votre ordinateur. Cliquez ici pour plus d'option"
 
Et dans le cas de non acceptation, le javascript ci-dessus n'est pas actif.
 
Merci de ton aide
vita :ouch:


Ce message d'erreur est simplement une protection pour empecher un script local (j'entend par là protocole file://) d'exécuter du javascript.
dnoc tu clique sur la barre jaune et tu dis okay clique.
 
Sinon pourquoi tu ne teste pas ta page sur un serveur web en local, ???

Reply

Marsh Posté le 14-03-2006 à 14:36:05    

un conseil :o
mets des _ (underscores) à la place des " " (espaces) dans les names de tes champs

Reply

Marsh Posté le 14-03-2006 à 15:09:50    

gatsu35 a écrit :

un conseil :o
mets des _ (underscores) à la place des " " (espaces) dans les names de tes champs


 
 
Merci pour tous vos messages:
Le code modifié (anapajari) fonctionne sauf le mail, petit problème à ce niveau là :) Il ne veut pas me l'envoyer....
 
Autrement une dernière question, Est-ce possible de mettre le sujet du mail ?  
Actuellemnt lorsque je le reçois, il m'informe sur la personne qui me l'a envoyé ( grace au mail) mais par contre, je ne connais pas le sujet ( par exemple : formulaire du site ...)
Peut-on rajouter un "sbject" en CGI?
 
Merci

Reply

Marsh Posté le 16-03-2006 à 17:18:06    

anapajari a écrit :

J'ai essayé ton code sur IE 6.0.29 sur un XP-SP2 marche très bien, sur FF aussi d'ailleurs ...  
 
Tiens voila exactement le code que j'ai testé ( au départ j'ai pris exactement le tien puis je l'ai un peu modifié parce que c'était pas top):

Code :
  1. <?xml version="1.0"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4.   <head>
  5.     <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  6.     <title>Test</title>
  7.     <style type="text/css">
  8.     .error{
  9.       background-color:red;
  10.     }
  11.     </style>
  12.   <script type="text/javascript">
  13.   function verif() {
  14.     var err = 0;
  15.     var fields = new Array('nom', 'prenom', 'adresse', 'postal', 'ville', 'telephone', 'email', 'message');
  16.     for(var i=0; i<fields.length; i++){
  17.       if(document.getElementById(fields[i]).value == '') {
  18.         document.getElementById("label_"+fields[i]).className = 'error';
  19.         err++;
  20.       } else {
  21.         document.getElementById("label_"+fields[i]).className = '';
  22.       }
  23.     }
  24.     if( validerEmail('email') ) {
  25.       document.getElementById("label_email" ).className = '';
  26.     } else {
  27.       document.getElementById("label_email" ).className = 'error';
  28.       err++;
  29.     }
  30.    return ! err;
  31.   }
  32.   function validerEmail(idInput) {
  33.     if (!document.getElementById(idInput).value.match(/^[\w>\-]+@([\w\-]+> )+[a-zA-Z]+$/)) {
  34.       return false;
  35.     }
  36.     return true;
  37.   }
  38.   </script>
  39.   </head>
  40.   <body>
  41.     <form action="http://www.cgi4all.org/cgi-bin/formmail.cgi" method="post" onsubmit="return verif();">
  42.       <input type="hidden" name="recipient" value="appart@vitamine-c.ch" />
  43.       <input type="hidden" name="redirect" value="http://www.auto-ecole-daniel.ch" />
  44.       <fieldset>
  45.         <div class="espace">
  46.           <label for="samaritains"> Samaritains </label>
  47.           <select name="date samaritains">
  48.             <option value="cours A"> Choisir une date </option>
  49.             <option value="cours A"> 7 mars 2006 17h00 </option>
  50.             <option value="cours sA"> 15 mars 2006 17h00 </option>
  51.             <option value="cours V"> 18 mars 2006 17h15 </option>
  52.           </select>
  53.         </div>
  54.         <div class="espace">
  55.           <label for="samaritains"> Sensibilisation </label>
  56.           <select name="date sensibilisation">
  57.             <option value="cours s"> Choisir une date </option>
  58.             <option value="cours s"> 7 mars 2006 17h00 </option>
  59.             <option value="cours s"> 15 mars 2006 17h00 </option>
  60.             <option value="cours s"> 18 mars 2006 17h15 </option>
  61.           </select>
  62.         </div>
  63.         <div class="espace">
  64.           <label for="nom" id="label_nom">Nom <span>*</span></label>
  65.           <input type="text" name="nom" id="nom" />
  66.         </div>
  67.         <div class="espace">
  68.           <label for="prenom" id="label_prenom"> Prém * </label>
  69.           <input type="text" name="prenom" id="prenom" />
  70.         </div>
  71.         <div class="espace">
  72.           <label for="adresse" id="label_adresse"> Adresse * </label>
  73.           <input type="text" name="adresse" id="adresse" />
  74.         </div>
  75.         <div class="espace">
  76.           <label for="postal" id="label_postal"> N° postal * </label>
  77.           <input type="text" name="postal" id="postal" />
  78.         </div>
  79.         <div class="espace">
  80.           <label for="ville" id="label_ville"> Ville * </label>
  81.           <input type="text" name="ville" id="ville" />
  82.         </div>
  83.         <div class="espace">
  84.           <label for="telephone" id="label_telephone"> Téphone * </label>
  85.           <input type="text" name="telephone" id="telephone" />
  86.         </div>
  87.         <div class="espace">
  88.           <label for="email" id="label_email">Email *</label>
  89.           <input type="text" name="email" id="email" />
  90.         </div>
  91.         <div class="espace">
  92.           <label for="message" id="label_message">Message *</label>
  93.           <textarea wrap="hard" name="message" id="message" cols="40" rows="5"></textarea>
  94.         </div>
  95.         <div class="espace">
  96.           <input type="submit" class="envoyer" value="Envoyer" />
  97.         </div>
  98.       </fieldset>
  99.     </form>
  100.   </body>
  101. </html>



 
Salut Chef,
Ton code est super cool sauf que lorsque je valide ton formulaire, l'e-mail reste en rouge et donc le formulaire ne part pas :pt1cable:  
Pourtant le mail me semble correcte blabla@yahoo.fr  
Merci de ta réponse
 
vita :hello:  

Reply

Marsh Posté le 16-03-2006 à 17:45:05    

c'est ta fonction validerEmail qui suxe des ours!!!
Dsl j'ai pas le temps de la refaire la mais ta regex a l'air moldave!

Reply

Marsh Posté le 16-03-2006 à 17:54:14    

anapajari a écrit :

c'est ta fonction validerEmail qui suxe des ours!!!
Dsl j'ai pas le temps de la refaire la mais ta regex a l'air moldave!


salut:
 
Que veux-tu dire en français?" Dsl j'ai pas le temps de la refaire la mais ta regex a l'air moldave!"
J'en déduit que tu n'as pas le temps et que peut-être un peu plus tard..
C'est ça?
 :pt1cable:

Reply

Marsh Posté le 16-03-2006 à 18:01:09    

tsss ... et j'ai même pas parler l33t en plus :o
 
Bref ta fonction validerMail retourne false même quand l'email est valide.  
C'est à mon avis l'expression régulière ( la chaine de caractère entre / dans les paramètres de match) qui ne permet pas une bonne vérification du format de l'email.
Je te conseille donc vivement de te pencher sur ce point précis, moi-même n'ayant actuellement pas le temps de le faire ( enfin si je veux être à l'heure à l'apéro!) ...


Message édité par anapajari le 16-03-2006 à 18:03:16
Reply

Sujets relatifs:

Leave a Replay

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