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 :

Verification syntaxe fonction javascript


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut Verification syntaxe fonction javascript
    Bonjour,

    Je cherche a faire une fonction en javascript verifiant certaines conditions avnt la validation d'un formulaire...

    Je ne m'y connait pas très bien en javascript et je ne sais pas quelle est la syntaxe exacte en javascript...

    Quelqu'un pourrait il vérifier ma fonction car je crois que dans les conditions des if il faut mettre trois égal parfois...

    Voici ma fonction qui me semble bonne hormis la syntaxe car ca ne marche pas du tout:

    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
    function valider()
    {
      // si la valeur des select taille et couleur est non choisie
      if((document.getElementById('taille').value == "Taille non choisie")&&(document.getElementById('couleur').value == "Couleur non choisie"))
      {
    	// on affiche un message
        alert("Veuillez choisir la taille et la couleur du produit dans les menu déroulant correspondants!");
        // et on indique de ne pas envoyer le formulaire
        return false;
      }
      elseif((document.getElementById('taille').value != "Taille non choisie")&&(document.getElementById('couleur').value == "Couleur non choisie"))
      {
      	// on affiche un message
        alert("Veuillez choisir la couleur du produit dans le menu déroulant correspondant!");
        // et on indique de ne pas envoyer le formulaire
        return false;
      }
      elseif((document.getElementById('taille').value == "Taille non choisie")&&(document.getElementById('couleur').value != "Couleur non choisie"))
      {
      	//on affiche un message
        alert("Veuillez choisir la taille du produit dans le menu déroulant correspondant!");
        // et on indique de ne pas envoyer le formulaire
        return false;
      }
      else
      {
        // les données sont ok, on peut envoyer le formulaire
        return true;
      }
     
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    elseif => c'est du javascript ça ?

    renseigne toi plutot sur le switch ...

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    @SpaceFrog : Non, en effet, mais "else if", oui.

    @calitom :

    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
    function valider(bouton){
       form = bouton.form;
       if((form.taille.value == "Taille non choisie")&&(form.couleur.value == "Couleur non choisie")){
          alert("Veuillez choisir la taille et la couleur du produit dans les menu déroulant correspondants!");
       }
       else if((form.taille.value != "Taille non choisie")&&(form.couleur.value == "Couleur non choisie")){
          alert("Veuillez choisir la couleur du produit dans le menu déroulant correspondant!");
       }
       else if((form.taille.value == "Taille non choisie")&&(form.couleur.value != "Couleur non choisie")){
          alert("Veuillez choisir la taille du produit dans le menu déroulant correspondant!");
       else{
          form.submit();
          bouton.disabled=true;
       }
    }
    Et ton code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="monadresse" method="post" name="formulaire">
       <input type="text" name="taille" id="taille" value="Taille non choisie" />
       <input type="text" name="couleur" id="couleur" value="Couleur non choisie" />
       <input type="button" value="Envoyer" name="soumettre" onclick="valider(this)" />
    </form>
    Tu peux évidemment remplacer les input text par n'importe quel objet du formulaire.

  4. #4
    Membre averti Avatar de Hug0_76
    Profil pro
    Inscrit en
    Août 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 292
    Points : 332
    Points
    332
    Par défaut
    Salut,

    tu ne devrais pas faire de condition else!

    Puisque tu va vouloir passer par toutes les conditions!
    Tu devrais faire simplement :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    erreur = 0;
    if(!condition1) {
       alert("erreur");
       erreur = 1;
    }
     
    if(!condition2) {
       alert("erreur");
       erreur = 1;
    }
     
    return (erreur == 0);

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    je persiste à dire qu'un switch serait beaucoup plus clair ...

  6. #6
    Membre averti Avatar de Hug0_76
    Profil pro
    Inscrit en
    Août 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 292
    Points : 332
    Points
    332
    Par défaut
    Hum un switch sur quoi aussi spacefrog??
    Parce que le switch ne fonctionne qu'avec des caractères ou des entiers!

    C'est plus propre mais il faudrait attribuer un numéro d'erreur, faire le test avec switch et afficher un msg en fonction du case....

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    C'était bien le elseif le problème...
    J'ai remplacé par else if!!

    Sinon BisounoursJos t'as solution n'est pas optimum car en utilisant le onclick si l'utilisateur appuie sur entrée avec le clavier, le formulaire sera qd meme valider...

    Le mieu c'est d'utiliser un onsubmit dans la balise form comme ca:
    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
     
    <script>
    function valider()
    {
      // si la valeur des select taille et couleur est non choisie
      if(document.getElementById('taille').value == "Taille non choisie" && document.getElementById('couleur').value == "Couleur non choisie")
      {
    	// sinon on affiche un message
        alert("Veuillez choisir la taille et la couleur du produit dans les menu déroulant correspondants!");
        // et on indique de ne pas envoyer le formulaire
        return false;
      }
      else if(document.getElementById('taille').value != "Taille non choisie" && document.getElementById('couleur').value == "Couleur non choisie")
      {
      	// sinon on affiche un message
        alert("Veuillez choisir la couleur du produit dans le menu déroulant correspondant!");
        // et on indique de ne pas envoyer le formulaire
        return false;
      }
      else if(document.getElementById('taille').value == "Taille non choisie" && document.getElementById('couleur').value != "Couleur non choisie")
      {
      	// sinon on affiche un message
        alert("Veuillez choisir la taille du produit dans le menu déroulant correspondant!");
        // et on indique de ne pas envoyer le formulaire
        return false;
      }
      else
      {
        // les données sont ok, on peut envoyer le formulaire
        return true;
      }
     
    }
    </script>
     
     
    <form name="form1" method="post" action="/cartsys/add.php" onsubmit="return valider()">
    ...
    </form>

  8. #8
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    @calitom : Au contraire, le formulaire ne sera pas validé si l'utilisateur appuye sur la touche "Entrée" de son clavier, parce que c'est un type button et non un type submit.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Autant pour moi j'avais pas fait attention!!

    Mais dans le cas où on utilise un type submit, il vaut mieux utiliser un onsubmit lol!

    Merci pour vos réponses!

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

Discussions similaires

  1. fonction de verification de formulaire javascript
    Par samspitz dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 12/02/2009, 10h55
  2. [PHP-JS] syntaxe fonction verification select
    Par calitom dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2006, 14h53
  3. Réponses: 11
    Dernier message: 10/05/2004, 10h49
  4. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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