Controle de formulaire

Signaler
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011
-
Messages postés
1788
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
24 juillet 2021
-
bonjour a tous ,,
j'ai un formulaire que je veux controler avec javascript, je veux dans un premier temps m'assurer que tout les champs sont remplis, si c'est le cas le formulaire est soumis sinon , une boite de dialogue s'affiche en precisant tout les champs qui n'ont pas etes remplis.
voici mon script :

<script language="javascript">
// fontion de controle du formulaire
 function controle()
 {
   message= new array(); // tableau pour garder les messages
   var rep =0; // variable pour tester si oui ou non tout les champs du formulaire sont remplis
   var i=0; // compteur
   
   for (i=0; i<12; i++) // boucle pour initialiser le tableau
    {
      message[i]='';
    }
    
 // recuperation du contenu des champs du formulaire et stockage dans des variables  
   var a=document.expedition.nombord.value;
 
   var b=document.expedition.provenance.value; 
   var c=document.expedition.destination.value;
   
   var d=document.expedition.nomexp.value; 
   var e=document.expedition.prenomexp.value; 
   var f=document.expedition.villexp.value;
   var g=document.expedition.ruexp.value;
   var h=document.expedition.telephonexp.value;
   
   var i=document.expedition.nomdes.value;
   var j=document.expedition.prenomdes.value;
   var k=document.expedition.villedes.value;
   var l=document.expedition.ruedes.value;
   var m=document.expedition.telephonedes.value;
 
 // test si les champs sont remplis ou pas et ajoute un messages d'erreurs dans le tableau  
     if (a=="")
        {
          message[0]=" Entrez un numero de bordereau! /n ";
        } 
     if (b=="")
        {
          message[1]=" vous devez preciser la provenance du colis ";
        }
     if (c=="")
        {
          message[2]=" vous devez preciser la destination du colis ";
        } 
     if (d=="")
        {
          message[3]=" vous devez preciser le nom de l'expediteur ";
        } 
     if (e=="")
        {
          message[4]=" vous devez preciser le prenom de l'expediteur ";
        } 
     if (f=="")
        {
          message[5]=" vous devez preciser la ville de l'expediteur ";
        }  
     if (g=="")
        {
          message[6]=" vous devez preciser la rue de l'expediteur ";
        } 

     if (h=="")
        {
          message[7]=" vous devez preciser le numero telephone de l'expediteur ";
        } 
        
     if (i=="")
        {
          message[8]=" vous devez preciser le destinataire ! ";
        } 
     if (j=="")
        {
          message[9]=" vous devez preciser le prenom du destinataire ";
        } 
     if (k=="")
        {
          message[10]=" vous devez preciser la ville du destinataire ";
        } 
     if (l=="")
        {
          message[11]=" vous devez preciser la rue du destinataire ";
        } 
     if (m=="")
        {
          message[12]=" vous devez preciser le numero de telephone du destinataire ";
        } 
            // verifie si tout les champs sont remplis ou pas avec la variable rep
              for (i=0; i<12; i++)
                {
                 {
                  if(message[i]!='')
                   rep=1;
                 }
                }
            // test la valeur de  rep  
             if (rep=0)            
              {
                for (i=0; i<12; i++)
                 {
                  alert("message[i]");// affiche une boite de dialogue avec les msg d'erreurs correspondant si rep != de 0
                 }
              }
             else
              {
                document.expedition.submit();// soumet le formulaire si tout les champs sont remplis    
              }
 }
</script>


seulmnt quand je valide mon formulaire ,,,rien ne se passe . comment est que je peux arranger ça svp ?
merci pour vos reponse.

8 réponses

Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hello,

recherche google : liveValidation

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
Bonjour,
1° et le html ? faut qu'on l'invente ?
2° tu n'as pas d'erreurs de syntaxe ?  voir (**)
3° il vaut mieux respecter le traitement standard, à savoir :
    <form action..... onsubmit="return(controle());"... >
        tes champs
       
    </form>
    et dans controle, pas de formulaire.submit() !
    return false s'ils y a des erreurs, return true sinon
pourquoi cet array,, ces variables intermédiaiares et tout le toutim ?

controle du style :
var lib="";
if ( document.expedition.nombord.value=="" )
    lib+=" Entrez un numero de bordereau! \r\n";
if ( document.expedition.provenance.value=="" )
    lib+="vous devez preciser la provenance du colis\r\n";
.....
if ( lib.length>0 )
       { alert(lib);
         return false;
       }
else { return true; }

Cordialement [mon Site] [M'écrire] Bul
(**)
Navigateurs |Quelques Explications |----

Chrome, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----

FireFox, Outils / Console d'erreurs
et mieux : télécharger FireBug, ----

Internet
Explorer, activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux (pour IE < 8) : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS, ----

K-Meleon, utils / Cons, ----

Opera, utils / Asole d'erreurs, ----

Safari, Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
----
Messages postés
1788
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
24 juillet 2021
132
bonjour

et aussi si j'ai bien compris si il y a juste une erreur on se coltine les douzes messages a ta plase je ferait une variable globale dans laquel tu additionnerait chaque messages ou il y a erreur et que tu afficherait a la fin la variable commencerait par vous avez oublier de

var erreur='vous avez oublier de cocher'
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

stp est que  je peux savoir precisemnet ou je peux telcharger livevalidation tout les que j'ai retrouve sur     google ne foncionne pas
merci
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

ICI :

http://www.livevalidation.com/download

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

j'ai refais mon script finalement de facon simple
<script language="javascript">

 function controle()
 {
   var a=document.expedition.nombord.value;
 
   var b=document.expedition.provenance.value;
   var c=document.expedition.destination.value;
  
   var d=document.expedition.nomexp.value;
   var e=document.expedition.prenomexp.value;
   var f=document.expedition.villexp.value;
   var g=document.expedition.ruexp.value;
   var h=document.expedition.telephonexp.value;
  
   var i=document.expedition.nomdes.value;
   var j=document.expedition.prenomdes.value;
   var k=document.expedition.villedes.value;
   var l=document.expedition.ruedes.value;
   var m=document.expedition.telephonedes.value;
  
     if (a=="")
        {
          alert(" Entrez un numero de bordereau! ");
          document.expedition.num_bo.focus();       
        }
     else    
           if (b=="")
             {
               alert(" vous preciser la provenance du colis ");
               document.expedition.provenance.focus();       
             }
    else         
           if (c=="")
             {
               alert(" vous devez preciser la destination du colis");
               document.expedition.destination.focus();       
             }
    else             
           if (d=="")
             {
               alert(" vous devez preciser le nom de l'expediteur");
               document.expedition.nomexp.focus();       
             }
    else         
           if (e=="")
             {
               alert(" vous devez preciser le prenom de l'expediteur ");
               document.expedition.prenomexp.focus();       
             }
    else         
           if (f=="")
             {
               alert(" vous devez preciser la ville de l'expediteur ");
               document.expedition.villexp.focus();       
             } 
    else         
           if (g=="")
             {
               alert(" vous devez preciser la rue de l'expediteur ");
               document.expedition.ruexp.focus();       
             }
    else
           if (h=="")
             {
               alert(" vous devez preciser le telephone de l'expediteur ");
               document.expedition.num_bo.focus();       
             }
           else
               if (isNaN(h))
               alert (" le numero de telephone doit etre entierement numerique ");
    else   
           if (i=="")
             {
               alert(" vous devez preciser le destinataire ");
               document.expedition.nomdes.focus();       
             }
    else         
           if (j=="")
             {
              alert(" vous devez preciser le prenom du destinataire ");
              document.expedition.prenomdes.focus();       
             }
    else         
           if (k=="")
             {
              alert("  vous devez preciser la ville du destinataire ");
              document.expedition.villedes.focus();       
             }
    else             
          if (l=="")
            {
              alert(" vous devez preciser une rue pour le destinataire ");
              document.expedition.ruedes.focus();       
            }
    else       
          if (m=="")
            {
             alert(" vous devez preciser le telephone du destinataire ");
             document.expedition.telephonedes.focus();       
            }
          else
             if (isNaN(m))
             alert (" le numero de telephone doit etre entierement numerique ");
     else
          document.expedition.submit();   
 }
</script>
et la marche simplement .
merci pr  vos reponse
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>document.expedition.submit();
quelle horreur....
le visiteur qui n'a pas activé le javascript
n'a pas le droit d'envoyer le formulaire ?

ne signaler qu'une erreur  là où il peut y en avoir plusieurs,
c'est pénible pour ce même visiteur

mais bon, chacun fait comme il le sent après tout....
@+
Messages postés
1788
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
24 juillet 2021
132
quand tu fait
document.expedition.nomdes.focus(); 

n'oubli pas de rajouter return false juste apres pour arrêter la fonction et éviter d'envoyer le formulaire