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 :

execution d'une fonction


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut execution d'une fonction
    Bonjour!!

    je viens de faire une fonction verif_formm qui doit me controler les champs du formulaires et afficher un message d'erreur si il yen a dans le formulaire mais il passe rien quand je charge la page dans le navigateur..
    voici le code de la fonction:
    function verif_form(){

    var chaine_erreur="";
    //verifier nom
    if (window.document.formulaire.nom.value =="")
    {
    chaine_erreur+="Indiquez votre nom svp!!\n";
    }
    //verifier prenom
    if (window.document.formulaire.prenom.value =="")
    {
    chaine_erreur+="Indiquez votre prenom svp!!\n";
    }
    //verifier le mail
    if (window.document.formulaire.email.value =="")
    {
    chaine_erreur+="Entrez votre mail svp!!\n";
    } else{
    var longueur = window.document.formulaire.email.length;
    var arobase = window.document.formulaire.email.indexOf("@");
    var point = window.document.formulaire.email.lastIndexOf(".");
    var espace = window.document.formulaire.email.indexOf(" ");
    if ((arobase == -1) || //verif de la presence d'un '@'
    (arobase == 0) || // à une position autre que 0
    (point == -1) || //presence du '.' dans l'adresse
    (point > arobase + 1) || // et de qqchose entre '.' et '@'
    (point < longueur - 1) || //et qqchose apres
    (espace == -1)) //pas d'espace
    {
    chaine_erreur+="Adresse email erroné,l'email est de la forme:toto@univ-pau.fr \n";
    }
    }

    //verifier reglement
    var select_bouton = "NO";
    if (window.document.formulaire.reglement.checked == true)
    {
    select_bouton = "YES";
    }
    if (select_bouton == "NO")
    {
    chaine_erreur+="Règlement";
    }

    if (chaine_erreur == "")
    {
    return true;
    } else{
    chaine_erreur = "Information omises dans le formulaire: \n" + chaine_erreur;
    alert(chaine_erreur);
    return false;
    }
    }
    et voici le formulaire dans la page.xhtml
    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
     
     
     
    <form method="post" action="#" id="formulaire" onSubmit="var resultat = verif_form(); return resultat;">
     
    <!--CODE POUR L'INSCRIPTION-->
     
    <h2>Vos données personnelles</h2>
    <br />
    <table width="100%">
    <colgroup width="10%" align="right"></colgroup>
    <colgroup width="70%"></colgroup>
    <tr>
     
    <td><label>*Nom: </label></td>
    <td><input type="text" name="nom" maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td><label>*Prenom: </label></td>
    <td><input type="text" name="prenom"  maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td><label>*Mail: </label></td>
    <td><input type="text" name="email"  maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td><label>N° de téléphone: </label></td>
    <td><input type="text" name="num_tel" maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td colspan="2"><label>J'accepte avoir pris connaissance du <a href=""> règlement</a>:</label></td>
    </tr>
    <tr>
    <td><input type="radio" name="reglement" /></td>
    </tr>
    <tr>
    <td><input type="submit" name="envoi" value="s'enregistrer" /></td>
    <td><input type="reset" value="Effacer tout" tabindex="5" /></td>
    </tr>
    </table>
    </form>
    sachant que plus haut dans l'entete je fais appel à la fonction sauvegardée dans un autre fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <script type="text/javascript" src="script/menus.js">
     
    </script>
    je regardé un peu pour voir pourquoi il se passait rien mais j'avoue que je vois pas du tout ce qui cloche.Pouriez vous m'aider svp??

    HELP!!

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    id="formulaire"
    ->
    ajoute un attribut
    name="formulaire"

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    il faudrait présenter ton problème plus simplement pour qu'on ait pas à lire 50 lignes de code pour décortiquer ce que tu veux faire (par exemple, faire une fonction JS se limitant à une alert(), ou nous épargner toute ta page html) ...

    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="var resultat = verif_form(); return resultat;"
    Si j'étais toi, je mettrais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="return verif_form();"
    je pense pas que ça change grand chose, ... mais ça simplifie le code. Sinon, quand tu dis que
    pourquoi il se passait rien
    ... es-tu sur que la vérification ne se fait pas? As-tu un message d'erreur JS? Que dis ta console?

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    surement
    window.document.formulaire has no property...
    s'il est assez rapide (plus que le submit)

  5. #5
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par PierrotY
    il faudrait présenter ton problème plus simplement pour qu'on ait pas à lire 50 lignes de code pour décortiquer ce que tu veux faire (par exemple, faire une fonction JS se limitant à une alert(), ou nous épargner toute ta page html) ...

    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="var resultat = verif_form(); return resultat;"
    Si j'étais toi, je mettrais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="return verif_form();"
    je pense pas que ça change grand chose, ... mais ça simplifie le code. Sinon, quand tu dis que
    ... es-tu sur que la vérification ne se fait pas? As-tu un message d'erreur JS? Que dis ta console?
    je n'ai aucun moyen de savoir si la verification se fait ou pas!! en plus je n'ai pas de message d'erreur JS!! donc à priori le script est correct mais apres pourquoi ça ne me verifie pas le contenu du formulaire ?? je ne saurais dire pourquoi!!puis j'ai testé aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onSubmit="return verif_form();"
    ça me fait pareil!!
    HELP!!

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    je n'ai aucun moyen de savoir si la verification se fait ou pas!!
    Pour savoir si ta fonction est exécutée, glisse tout au début (sans qu'il n'y ait aucun test) un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert('Je suis passé par ici!!');
    C'est bourrin, mais efficace!

  7. #7
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par PierrotY
    Pour savoir si ta fonction est exécutée, glisse tout au début (sans qu'il n'y ait aucun test) un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert('Je suis passé par ici!!');
    C'est bourrin, mais efficace!
    plus simple :
    <input type="button" name="envoi" value="s'enregistrer" onclick="alert( verif_form());" />
    sinon met le onsubmit en minuscule...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    Je ne pense pas que la solution de Matthieu2000 soit plus simple. Je sais pas ce que la valeur retournée par le submit donnera dans une fenêtre d'alert.
    Mais, c'est par contre tout à fait possible que la fonction ne soit pas appelée simplement à cause d'une majuscule manquante... faut vérifier!

  9. #9
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par PierrotY
    Je sais pas ce que la valeur retournée par le submit donnera dans une fenêtre d'alert.
    -> true ou false 0 1 (ce que tu mets dans le return)

    ou une erreur dans notre cas

  10. #10
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    salut!!
    en fait en rajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" name="envoi" value="s'enregistrer" onclick="alert( verif_form());" />
    il me renvoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.document.formulaire has no properties
    que faire???

    HELP!!

  11. #11
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par Matthieu2000
    window.document.formulaire has no property...
    bon j'y étais presque, mais grammatiquement c'était bon.
    essaie de mettre
    <form method="post" action="" id="formulaire" onsubmit=" return verif_form(); " name="formulaire" >
    si il y a plusieurs formulaires identiques, essaie le passage par paramètre avec this en argument...

  12. #12
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form method="post" action="" id="formulaire" onsubmit=" return verif_form(); " name="formulaire"  >
    ne change pas grand chose
    en fait la ça revient à la case de depart: il ne se passe rien dans le formulaire.

  13. #13
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    +
    ajoute value
    var longueur = window.document.formulaire.email.length;
    ->
    var longueur = window.document.formulaire.email.value.length;
    et les autres aussi

    PS conserve
    <input type="button" name="envoi" value="s'enregistrer" onclick="alert( verif_form());" />
    jusqu'a ce que ca retourne true

  14. #14
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Matthieu2000
    +
    ajoute value


    ->
    et les autres aussi

    PS conserve
    jusqu'a ce que ca retourne true
    ça ne change rien
    en fait il rentre dans la fonction mais il n'ya rien qui se passe. je sais pas trop pourquoi!!j'ai mis une fontion alert(); avant de rentrer dans les conditions ..il me l'exécute bien mais apres il se passe rien !!!

    HELP!!!
    ps:
    erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.document.formulaire has no properties ..
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" name="envoi" value="s'enregistrer" onclick="alert( verif_form());" />

  15. #15
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par dé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
    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
    <html>
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function verif_form(){
     
    var chaine_erreur="";
    //verifier nom
    if (window.document.formulaire.nom.value =="")
    {
    chaine_erreur+="Indiquez votre nom svp!!\n";
    }
    //verifier prenom
    if (window.document.formulaire.prenom.value =="")
    {
    chaine_erreur+="Indiquez votre prenom svp!!\n";
    }
    //verifier le mail
     
    if (window.document.formulaire.email.value =="")
    {
    chaine_erreur+="Entrez votre mail svp!!\n";
    } else{
    var longueur = window.document.formulaire.email.value.length;
    var arobase = window.document.formulaire.email.value.indexOf("@");
    var point = window.document.formulaire.email.value.lastIndexOf(".");
    var espace = window.document.formulaire.email.value.indexOf(" ");
    if ((arobase == -1) || //verif de la presence d'un '@'
    (arobase == 0) || // à une position autre que 0
    (point == -1) || //presence du '.' dans l'adresse
    (point < arobase + 1) || // et de qqchose entre '.' et '@'
    (point > longueur - 1) || //et qqchose apres
    (espace != -1)) //pas d'espace
    {
    chaine_erreur+="Adresse email erroné,l'email est de la forme:toto@univ-pau.fr \n";
    }
    }
     
    //verifier reglement
    var select_bouton = "NO";
    if (window.document.formulaire.reglement.checked == true)
    {
    	select_bouton = "YES";
    }
    if (select_bouton == "NO")
    {
    chaine_erreur+="Règlement";
    }
     
    if (chaine_erreur == "")
    {
    return true;
    } else{
    chaine_erreur = "Information omises dans le formulaire: \n" + chaine_erreur;
    alert(chaine_erreur);
    return false;
    }
    }
     
    //-->
    </script>
    <body>
     
     
    <form method="post" action="#" id="formulaire" name="formulaire" onSubmit="var resultat = verif_form(); return resultat;">
     
    <!--CODE POUR L'INSCRIPTION-->
     
    <h2>Vos données personnelles</h2>
    <br />
    <table width="100%">
    <colgroup width="10%" align="right"></colgroup>
    <colgroup width="70%"></colgroup>
    <tr>
     
    <td><label>*Nom: </label></td>
    <td><input type="text" name="nom" maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td><label>*Prenom: </label></td>
    <td><input type="text" name="prenom"  maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td><label>*Mail: </label></td>
    <td><input type="text" name="email"  maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td><label>N° de téléphone: </label></td>
    <td><input type="text" name="num_tel" maxlength="256" size="40" /></td>
    </tr>
    <tr>
    <td colspan="2"><label>J'accepte avoir pris connaissance du <a href=""> règlement</a>:</label></td>
    </tr>
    <tr>
    <td><input type="radio" name="reglement" /></td>
    </tr>
    <tr>
    <td><input type="submit" name="envoi" value="s'enregistrer" />
    </td>
    <td><input type="reset" value="Effacer tout" tabindex="5" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    + correction synthaxe
    - accents

  16. #16
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    est-ce qu'il peut arriver qu le problème vienne du navigateur parceque c'est toujours pareil!! il ne se passe rien dans le navigateur!!!



  17. #17
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    quel est ton navigateur?
    ton action renvoie sur lui meme est ce que c'est normal, essaie de le renvoyer sur une autre page.

  18. #18
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    Je desespere!!! j'ai changé l'action, j'ai meme essayé avec un seul element..il rentre meme plus dans la fonction...(j'utilise firefox2)...

  19. #19
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut



    c'est bon j'ai trouvé la solution:
    apparament avec le onSubmit c'etait voué à l'echec ducoup j'ai modifié entierement le script, fin un peu ... ça donne ceci:
    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
     
    function verif_form(){
     
    var chaine_erreur="";
    //verifier nom
    elt1=document.forms['formulaire'].elements['nom'];
    elt2=document.forms['formulaire'].elements['prenom'];
    elt3=document.forms['formulaire'].elements['email'];
    elt4=document.forms['formulaire'].elements['reglement'];
     
    if (elt1.value =="")
    {
    chaine_erreur+="Indiquez votre nom svp!!\n";
    }
    //verifier prenom
    if (elt2.value =="")
    {
    chaine_erreur+="Indiquez votre prenom svp!!\n";
    }
    //verifier le mail
    if (elt3.value =="")
    {
    chaine_erreur+="Entrez votre mail svp!!\n";
    } else{
    var longueur = elt3.value.length;
    var arobase = elt3.value.indexOf("@");
    var point = elt3.value.lastIndexOf(".");
    var espace = elt3.value.indexOf(" ");
    if ((arobase == -1) || //verif de la presence d'un '@'
    	(arobase == 0) || // à une position autre que 0
    	(point == -1) || //presence du '.' dans l'adresse
    	(point > arobase + 1) || // et de qqchose entre '.' et '@'
    	(point < longueur - 1) || //et qqchose apres 
    	(espace == -1)) //pas d'espace
    {
    chaine_erreur+="Adresse email erroné,l'email est de la forme:toto@univ-pau.fr \n";
    }
    }
     
    //verifier reglement
    var select_bouton = "NO";
    if (elt4.checked == true)
    {
    select_bouton = "YES";
    }
    if (select_bouton == "NO")
    {
    chaine_erreur+="prenez connaissance du Reglement";
    }
     
    if (chaine_erreur == "")
    {
    return true;
    } else{
      chaine_erreur = "Information omises dans le formulaire: \n" + chaine_erreur;
      alert(chaine_erreur);
      return false;
      }
    }
     
    function valider(){
      alert("ceci est un script");
      elt=document.forms['formulaire'].elements['nom'];
      if(elt.value != "") {
        return true;
      }
      else {
        alert("Saisissez le nom");
        return false;
      }
    }
    et pour valider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" onclick="return verif_form()" name="envoi" value="s'enregistrer" />

    Merci de votre aide en tout cas !!!!

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

Discussions similaires

  1. [MFC] Arreter execution d'une fonction
    Par ricky78 dans le forum MFC
    Réponses: 1
    Dernier message: 07/11/2005, 15h52
  2. [Pl/pgSQL] Erreur sur l'execution d'une fonction.
    Par Floréal dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/09/2005, 00h48
  3. [C#] Execution d'une fonction en code behind
    Par elendila dans le forum ASP.NET
    Réponses: 21
    Dernier message: 22/08/2005, 15h06
  4. Réponses: 3
    Dernier message: 17/06/2004, 16h32
  5. Execution d'une fonction lors de l'appui sur CTRL+ALT+I
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 17/03/2004, 01h35

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