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 :

enchaîner des fonctions


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut enchaîner des fonctions
    Bonjour,

    j'essaie de résoudre ce petit problème de débutant que je suis. J'ai trois fonctions dans mon script. En fait, j'aimerais que la fonction checkValues() suive automatiquement la fonction verification() à partir du moment ou tous les champs sont remplis et qu'ensuite (à partir du moment ou les chiffres sont bons) mon formulaire soit envoyé en cliquant sur Envoyer. Autrement dit, c'est aussi supprimer le bouton vérifier en enchainant les fonctions. Ces quelques connaissances me manquent.. Merci


    Mon code est :



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <title>Document sans nom</title>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    <script type="text/javascript">

    <!--

    function calcul() {



    window.document.formulaire.trois.value = parseInt(window.document.formulaire.un.value) + parseInt(window.document.formulaire.deux.value) ;

    window.document.formulaire.six.value = parseInt(window.document.formulaire.quatre.value) + parseInt(window.document.formulaire.cinq.value) ;





    }



    function checkValues()

    {



    un = window.document.formulaire.un.value;

    deux = window.document.formulaire.deux.value;

    trois = window.document.formulaire.trois.value;

    quatre = window.document.formulaire.quatre.value;

    cinq = window.document.formulaire.cinq.value;

    six = window.document.formulaire.six.value;



    if (parseInt(trois) != parseInt(six))

    {

    alert ("Mauvaise répartition majeurs mineurs");

    return;

    }

    }

    function verification()

    {

    if(window.document.formulaire.un.value == "") {

    alert ("Veuillez indiquer le nombre de garçons svp");

    window.document.formulaire.un.focus();

    return false;

    }

    else

    if(window.document.formulaire.deux.value == "") {

    alert ("Veuillez indiquer le nombre de filles svp");

    window.document.formulaire.deux.focus();

    return false;

    }

    else

    if(window.document.formulaire.quatre.value == "") {

    alert ("Veuillez entrer le nombre de mineurs svp");

    window.document.formulaire.quatre.focus();

    return false;

    }

    else

    if(window.document.formulaire.cinq.value == "") {

    alert ("Veuillez entrer le nombre de majeurs svp");

    window.document.formulaire.cinq.focus();

    return false;

    }



    return true;

    }





    // -->

    </script>



    </head>



    <body>

    <form action="contact.php" method="post" id="myform" name="formulaire" onsubmit="return verification();">



    <p>Composition de la famille :<br>

    <br>

    Gar&ccedil;ons :

    <input name="un" type="text" onkeyup="calcul();" />



    <br>

    <br>

    Filles :

    <input name="deux" type="text" onkeyup="calcul();" />



    <br>

    <br>

    Total

    <input name="trois" type="text" readonly="readonly" />

    <br>

    <br>

    Répartition majeurs / mineurs:<br>

    <br>





    Mineurs

    <input name="quatre" type="text" onkeyup="calcul();" />



    <br>

    <br>

    Majeurs

    <input name="cinq" type="text" onkeyup="calcul();" />



    <br>

    <br>

    Total <input name="six" type="text" readonly="readonly" />

    <br>

    <br>

    <input id="validSearch" type="submit" value="Envoyer" /> <input type="reset" value="Effacer" />



    <input name="calculs" type="button" onClick="checkValues();" value="v&eacute;rifier" />







    </form>

    </body>

    </html>

  2. #2
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Merci d'utiliser la balise code pour le code ^^

    Ensuite tu peux mettre un onclick sur ton bouton envoyer. Dans ce onclick tu appelles une fonction qui appellera verification() puis checkValues()
    Si ces fonctions ramènent une erreur tu retourne false ainsi le formulaire ne sera pas soumis.

    Par contre avant de faire tes parseInt vérifies que la valeur de tes input est bien un entier. Sinon tu vas avoir des NaN.
    A la rigueur autorise simplement les entiers dans tes input.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut pour essayer de faire suite...
    Merci pour cette réponse mais je suis un vrai débutant.... alors...je bricole... n'hésite pas à être plus explicite si tu en as toutefois le loisir. Tout à l'heure, j'avais essayé un truc en mettant

    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
    else
     
    if(window.document.formulaire.cinq.value == "") {
     
    alert ("Veuillez entrer le nombre de majeurs svp");
     
    window.document.formulaire.cinq.focus();
     
    return false;
     
    }
     
     
    else
    checkValue();
    .... + quelque chose.....
    }
    bref quelque chose à la fin de verification() qui lançait bien checkValues() en vérifiant bien les chiffres mais ça ne faisait pas partir le formulaire. Ca se joue en quelques instructions... mais lesquelles ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut à nouveau le code
    Je replace le code comme il faut...

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Document sans nom</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript">
    <!--
    function calcul() {
    window.document.formulaire.trois.value = parseInt(window.document.formulaire.un.value) + parseInt(window.document.formulaire.deux.value) ;
     
    window.document.formulaire.six.value = parseInt(window.document.formulaire.quatre.value) + parseInt(window.document.formulaire.cinq.value) ;
    }
    function checkValues()
    {
    un = window.document.formulaire.un.value;
    deux = window.document.formulaire.deux.value;
    trois = window.document.formulaire.trois.value;
    quatre = window.document.formulaire.quatre.value;
    cinq = window.document.formulaire.cinq.value;
    six = window.document.formulaire.six.value;
     
    if (parseInt(trois) != parseInt(six))
    {
    alert ("Mauvaise répartition majeurs mineurs");
    return;}
    }
    function verification()
    {
    if(window.document.formulaire.un.value == "") {
    alert ("Veuillez indiquer le nombre de garçons svp");
    window.document.formulaire.un.focus();
    return false;
    }
    else
    if(window.document.formulaire.deux.value == "") {
    alert ("Veuillez indiquer le nombre de filles svp");
    window.document.formulaire.deux.focus();
    return false;
    }
    else
    if(window.document.formulaire.quatre.value == "") {
    alert ("Veuillez entrer le nombre de mineurs svp");
    window.document.formulaire.quatre.focus();
    return false;
    }
    else
    if(window.document.formulaire.cinq.value == "") {
    alert ("Veuillez entrer le nombre de majeurs svp");
    window.document.formulaire.cinq.focus();
    return false;
    }
    return true;
    }
    // -->
    </script>
    </head>
    <body>
    <form action="contact.php" method="post" id="myform" name="formulaire" onsubmit="return verification();">
    <p>Composition de la famille :<br><br>
    Gar&ccedil;ons : <input name="un" type="text" onkeyup="calcul();" />
    <br><br>
    Filles :
    <input name="deux" type="text" onkeyup="calcul();" />
    <br><br>
    Total<input name="trois" type="text" readonly="readonly" /><br><br>
    Répartition majeurs / mineurs:<br><br>
    Mineurs <input name="quatre" type="text" onkeyup="calcul();" /><br><br>
    Majeurs<input name="cinq" type="text" onkeyup="calcul();" /><br><br>
    Total <input name="six" type="text" readonly="readonly" /><br><br>
     
    <input id="validSearch" type="submit" value="Envoyer" /> <input type="reset" value="Effacer" />
    <input name="calculs" type="button" onClick="checkValues();" value="v&eacute;rifier" />
    </form>
    </body>
    </html>
    voilà, c'est plus "propre"

  5. #5
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Ce que tu peux faire c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="validSearch" type="submit" value="Envoyer" onclick="GlobalCheck();"/>
    et tu crées donc la fonction js associée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function GlobalCheck() {
    // Appel de verification (renvoie 0 s'il y a un problème par exemple)
    var retour = verification(); 
    if (retour==0) return false;
     
    // Appel de checkValues() (de la même façon)
    retour = checkValues(); 
    if (retour==0) return false;
     
    // si tout est OK on arrive là et donc le submit s'effectue
     
    }
    Quelque chose du genre...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut un code qui pourrait m'être utile...
    Merci pour ton aide... j'essaie de voir si je peux tirer profit de ce code trouvé sur la toile pour l'appliquer à mon cas... je progresse lentement n'ayant que quelques heures de pratique... patience...


    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
    <script language="JavaScript">
      <!--
     
        function test_champ(champ) {
          expr_reg = /^\d*$/ ;
          // Ci-dessus : expression régulière qui match 0,1 ou plusieurs chiffres ;
          // de cette façon on vérifie que l'utilisateur entre bien un nombre entier
          if ( expr_reg.test(champ.value) ) {
            // c'est bien un nombre entier
            calcul_form() ;
          } else {
            // ce n'est pas un nombre entier
            alert ("Ce n'est par un nombre entier !") ;
            document.form1.elements[champ.name].value = "" ;   // on efface la valeur entrée erronée
            calcul_form() ;
          }
        }
     
        function calcul_form() {
          // le with ci-dessous permet d'abréger "document.forms.form1.p1.value" en "p1.value"
          with (document.forms.form1) {
            p1.value = q1.value * pu1.value ;
            p2.value = q2.value * pu2.value ;
            p3.value = q3.value * pu3.value ;
            total.value = p1.value *1 + p2.value *1 + p3.value *1 ;
               // Ai mis les *1 ci-dessus afin que les + fassent une somme arithmétique
               // et non pas une concaténation de chaînes de caractères
          }
        }
     
        function champ_verrouille(champ,valeur) {
               // Remarque : en HTML 4.0, il existe un attribut "read-only" pour la
               //            balise <INPUT TYPE=text> qui interdira de modifier un champ
               //            mais ce que je fais ci-dessous est beaucoup plus sûr !!!
          // alert ("Ce champ de peut pas être modifié !") ;
          document.form1.elements[champ.name].value = valeur ;   // on remet "valeur" initiale dans champ
        }
     
        function soumettre_form() {
          if ( document.forms.form1.total.value == 0 ) {
            alert ("Vous n'avez rien commandé !\n => commande non soumise") ;
            return false ;
          } else {
            // Les 2 lignes ci-dessous devraient être activées pour réellement passer le form. à script CGI
            // document.form1.method = "POST" ;
            // document.form1.action = "http://dgrwww.epfl.ch/cgi-bin/uncgi/mail_form.sh?mailto=Jean-Daniel.Bonjour@epfl.ch" ;
            document.write ("<H3 ALIGN=center>Commande passée\n pour un montant de " +
                             document.forms.form1.total.value + " Frs</H3>") ;
            document.close () ;
            return true ;
          }
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enchaîner des fonctions + appel de pages web
    Par torobravo dans le forum Access
    Réponses: 2
    Dernier message: 08/07/2006, 12h06
  2. Liste des fonctions
    Par Mookie dans le forum C
    Réponses: 2
    Dernier message: 22/09/2003, 16h42
  3. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/05/2003, 21h59
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

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