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 :

Ma condition if / else ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut Ma condition if / else ne fonctionne pas
    Bonjour

    Je suis débutant en javascript.
    Voilà, je récupère dans deux champs html input, les valeurs 'ms' et 'app'.
    Lorsque je quitte le focus de 'app', je lance la fonction suivante :

    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
     
    function control_exo()
    {
    var mass = document.getElementById('ms').value;
    var appr = document.getElementById('app').value;
     
    if ((mass > '90308')||((mass <= '90308')&&((appr == '0')||(appr == ''))))
      {
      calcul();
      }
     
    else
      {
      confirm('Test');
      }
    }
    Mon problème : Pour toutes les conditions, j'obtiens le message confirm 'Test'.
    Comprends pas...

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    tes comparaisons sont faites sur des stings pas sur des integers ... c'est normal ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    hiii je suis débutant, c'est quoi des stings et des integers ?

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    encore faut il savoir ce qu'il y a dans tes variables et d'ou elle viennent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function control_exo()
    {
    var mass = Number(document.getElementById('ms').value);
    var appr = Number(document.getElementById('app').value);
     
    if ((mass > 90308)||((mass <= 90308)&&((appr == 0)||(appr == ''))))
    integer = numérique entier naturel
    string = alphabétique
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    ok merci j'ai compris

    J'ai fait cela et ça fonctionne :

    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
     
    function control_exo()
    {
    var mass = document.getElementById('ms').value;
    var appr = document.getElementById('app').value;
     
    if ((mass > parseInt('90308'))||((mass <= parseInt('90308'))&&((appr == parseInt('0'))||(appr == parseInt('')))))
      {
      calcul();
      }
     
    else
      {
      confirm('Test');
      }
    }
    Y a peut être mieux ?

    Merci en tout cas je me retrouve plus éclairé !

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut




    dans le genre je prend le problème à l'envers

    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    oups désolé je suis allé trop vite je n'avais pas vu ta soluce !
    Merci

  8. #8
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Salut,

    Qu'est ce que tu veux faire avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (mass > parseInt('90308'))||((mass <= parseInt('90308'))
    Parce que l'expression dit que mass est plus grand que 90308 ou plus petit/egal que 90308, donc ça peut être n'importe quoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((mass > 90308 || mass <= 90308) && appr == 0)
    Marchera très bien, sachant que "" est casté en 0 dans une conversion string -> numérique.

    Il reste plus qu'a savoir à quoi tu veux comparer "mass"

  9. #9
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    Non, l'expression complète est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((mass > parseInt('90308'))||((mass <= parseInt('90308'))&&((appr == parseInt('0'))||(appr == parseInt('')))))
    Ce qui est différent.

    De toute façon mon problème est résolu ! yihha !

  10. #10
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Bon, reprennons, ton expression est composée de deux sous expressions, la première fais ce que je décris dans mon post précedent, et tu verras que quelque soit la valeur de mass, le test fonctionne, donc la partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((mass > parseInt('90308'))||((mass <= parseInt('90308'))
    Ne sert à rien!

  11. #11
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    bah non je vais dire pas d'accord.

    C'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (mass > parseInt('90308'))
    ou (||)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((mass <= parseInt('90308'))&&((appr == parseInt('0'))||(appr == parseInt('')))
    Regarde bien les parenthèses, ...

  12. #12
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Mea culpa, j'avais mal copié l'expression.

    Par contre inutile de tester deux valeurs sur appr, une seul suffit

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

Discussions similaires

  1. [PrestaShop] Condition basique qui ne fonctionne pas..
    Par Guigui_Mou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 05/06/2014, 17h44
  2. Réponses: 3
    Dernier message: 05/11/2011, 18h50
  3. Réponses: 2
    Dernier message: 19/09/2008, 09h55
  4. condition if qui ne fonctionne pas avec tous les elements
    Par oceane751 dans le forum Langage
    Réponses: 2
    Dernier message: 04/09/2008, 12h39
  5. else ne fonctionnant pas
    Par DJ ripper dans le forum Langage
    Réponses: 5
    Dernier message: 12/12/2006, 18h09

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