IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Vérification champs de texte et liste déroulantes


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Vérification champs de texte et liste déroulantes
    Salutations
    j'ai un formulaire de passage de commande pour un restaurant mais je n'arrive pas a tester les champs "adresse de livraison" et les deux listes deroulantes "categorie" et "Article" pour valider l'envoi du formulaire par email.
    Merci d'avance
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    <!DOCTYPE html>
    <html>
       <head>
          <meta charset="utf-8">
          <title>Commande Client</title>
     
          <script>
             <!--
             function Choix(form) {
             i = form.Categorie.selectedIndex;
             if (i == 0) {
               for (i=0;i<4;i++) {
                 form.article.options[i].text="";
                 }
               return;
               }
             form.article.selectedIndex = 0;
             switch (i) {
             case 1 : var txt = new Array ('Soupe_De_Poisson','Boeuf_Stroganoff','Mignonette_De_Poulet'); break;
             case 2 : var txt = new Array ('Terrine_de_courgettes','Gaspacho','Salade_Cesar'); break;
             case 3 : var txt = new Array ('Pizza_Napolitaine','Pizza_Marinara','Pizza_Margheritta'); break;
             case 4 : var txt = new Array ('Pita_Poulet_marine','Wrap_Dinde_marinee','Croc_Monsieur'); break;
             }
             form.article.options[0].text="";
             for (i=0;i<4;i++) {
               form.article.options[i+1].text=txt[i];
               }
             } 
          </script>
       <script>
             function verif_champ(Adresse_Livraison,Categorie,Article) 
             { 
             var adr = document.envoi.Adresse_Livraison.value == "";
    		 var catego = document.envoi.Categorie.selectedindex.value == "";
    		 var Arti = document.envoi.article.selectedindex.value == "";
    		 if (adr && catego && arti ) 
             { alert("Un champ n'est pas rempli"); 
             return false; 
             } 
             return true; 
             } 
          </script>
     
    		<script language="javascript"> function calcul() {
    	     var e = document.getElementById("article");
    	     var strUser = e.options[e.selectedIndex].value;
    		 switch (strUser) {
             case 'Soupe_De_Poisson' : var prix = "450" ; break;
             case 'Boeuf_Stroganoff' : var prix = "800" ; break;
             case 'Mignonette_De_Poulet' : var prix = "550" ; break;
             case 'Terrine_de_courgettes' : var prix = "300" ; break;
    		 case 'Gaspacho' : var prix = "325" ; break;
    		 case 'Salade_Cesar' : var prix = "335" ; break;
    		 case 'Pizza_Napolitaine' : var prix = "315" ; break;
    		 case 'Pizza_Marinara' : var prix = "365" ; break;
    		 case 'Pizza_Margheritta' : var prix = "375" ; break;
    		 case 'Pita_Poulet_marine' : var prix = "255" ; break;
    		 case 'Wrap_Dinde_marinee' : var prix = "250" ; break;
    		 case 'Croc_Monsieur' : var prix = "150" ; break;
             }
    		 val1=prix;
             val2=parseInt(document.getElementById('Nombre').value);
    		 var total1=0;
    		 //var remise=0;
    		 if ( val2>= 10) {
                 alert("vous avez benificié d'un article gratuit");
             	total1=val1*val2;
    			document.getElementById('Nombre').value=val2+1;
             	}
     
             if (val2 < 10) {
                 total1=val1*val2;
             }
             document.getElementById('Prixt').value=total1;
    		}
             </SCRIPT> 
     
       <style type="text/css">
       body {
    	background-image: url(restauration-commercialisation-service0.jpg);
    }
       </style>
    </head>
       <body>
       <p> Commande Client</p>
       <form action="mailto:polux@gmail.com?subject=Commande Client" name="envoi" method=POST enctype="text/plain" onsubmit="return verif_champ(document.envoi.Adresse_Livraison.value);recalculer();">
             <p>Adresse Livraison : 
                <label for="Adresseli"></label><input type="text" name="Adresse_Livraison" id="Adresseli">
             </p>
             <p>
                Choisir Une categorie :
                <SELECT NAME="Categorie" onChange="Choix(this.form);" id="categorie">
                   <OPTION></OPTION>
                   <OPTION>Plats Chauds</OPTION>
                   <OPTION>Entrées Froides</OPTION>
                   <OPTION>Pizzas</OPTION>
                   <OPTION>Sandwichs</OPTION>
                </SELECT>
                <label for="cat"></label>
             </p>
         <p>
                Choisir un article :
                <SELECT NAME="article" id="article" onChange="calcul()">
                   <OPTION></OPTION>
                   <OPTION></OPTION>
                   <OPTION></OPTION>
                   <OPTION></OPTION>
                </SELECT>
           <label for="art"></label>
           </p>
             <p>Nombre : 
                <label for="Nombre"></label>
                <input name="Nombre" type="text" id="Nombre" onchange="calcul()" value="1">
                <label for="Cat"></label>
             </p>
         <p>Prix Total : 
                <label for="Prixt"></label>
                <input name="Prix Total" type="text" disabled  id="Prixt" >
                <label for="Art"></label>
             </p>
             <p>
                <input type="submit" name="" id="" value="Commander">
             </p>
       </form>
     
    </body>
    </html>

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bonjour,

    Tu devrais déjà distinguer le i des catégories de celui des articles : iCategorie, iArticle, par exemple.

    Fred

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onsubmit="return verif_champ(document.envoi.Adresse_Livraison.value);recalculer();"
    A cause du return, la fonction recalculer ne sera jamais appelée ici

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 657
    Points
    44 657
    Par défaut
    Bonjour,
    le code n'est pas très académique bien que fonctionnel...
    Les formulaires

  5. #5
    Membre averti
    Profil pro
    à la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : à la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Points : 362
    Points
    362
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function verif_champ(Adresse_Livraison,Categorie,Article) 
    { 
    var adr = document.envoi.Adresse_Livraison.value == "";
    var catego = document.envoi.Categorie.value == "";
    var Arti = document.envoi.article.value == "";
    if (adr || catego || Arti ) 
    { alert("Un champ n'est pas rempli"); 
    return false; 
    } 
    return true; 
    }
    Ça devrait mieux fonctionner comme ça, tu compareras avec ton code. Enfin, pour cette partie là seulement cf remarques précédentes

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/03/2008, 18h52
  2. champ texte et liste déroulante
    Par angeleyes24 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/03/2008, 09h32
  3. [MySQL] Affichage auto de champs par clic sur liste déroulante
    Par Mister Shell dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/12/2006, 12h08
  4. Réponses: 12
    Dernier message: 19/12/2006, 12h26
  5. Réponses: 4
    Dernier message: 19/07/2006, 10h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo