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 :

Conditions || en js


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    257
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 257
    Par d�faut Conditions || en js
    Bonjour,
    Pour faire un calcul, j'ai ceci
    avec un OR (||)
    mais la deuxi�me condition ne fonctionne pas
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if (document.getElementById('height').value!='' || document.getElementById('height').value!=0) {h=document.getElementById('height').value;} else {h=1;}
    Ce qui est �tonnant c'est que cela m'arrive en php aussi des fois mais pas toujours.
    Quand ca ce passe je duplique le test avec un else if
    Vous auriez une id�e ?

    Merci

  2. #2
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut


    Il faut manipuler un nombre pas un texte.

    Exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const elemHeight = document.querySelector('#height');
     
    let 
        h = 0, // un Number !
        elemHeightValue = Number(elemHeight.value); // on transforme le String en Number
     
    if (elemHeightValue && elemHeightValue !== 0) {
        h = elemHeightValue;
    } else {
        h = 1;
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par d�faut
    La deuxi�me condition pour toi c'est document.getElementById('height').value!=0 ?

    Je ne sais pas ce que tu entends par "la deuxi�me condition ne fonctionne pas" mais si comme je le pense document.getElementById('height').value est une string alors je ne comprends pas pourquoi tu la compares au nombre 0... Peut-�tre que tu veux la comparer avec la string "0" ? Si oui ben il manque juste les guillemets...

    PS : Tu utilises plusieurs fois document.getElementById('height').value ce serait mieux de le stocker dans une variable ce serait plus rapide et peut-�tre m�me plus lisible car moins long...


    EDIT : Ah Daniel a r�pondu.

  4. #4
    Membre �clair�
    Homme Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    257
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 257
    Par d�faut
    Bonjour,
    ok, merci des r�ponses.

    - document.getElementById('height').value est bien un nombre.
    - document.getElementById('height').value!=0 est bien la deuxi�me condition
    - Je ne r�ussi pas � r�cup�rer la value avec
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const elemHeight = document.querySelector('#height');
    Faudrait-il faire ceci ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const elemHeight = document.querySelector(document.getElementById('height').value);
    - Oui, pour mettre les document.getElementById('....').value dans une variable (faut que j'en prenne l'habitude)

    On peut faire ca ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    height=document.getElementById('height').value;
    if (height == 0) {h=1;} else {h=height;}
    Qui g�re la valeur 0 et la valeur '' (vide)

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par d�faut
    Citation Envoy� par feelwatt Voir le message
    - document.getElementById('height').value est bien un nombre.
    J'en doute, peux-tu nous dire quel est l��l�ment HTML qui a pour ID "height" ? Je pense que c'est une input ou un textearea, non ? Si oui alors il s'agit bien d'une string mais une string peut correspondre � un nombre bien s�r mais il faudra une conversion dans certains cas, cela d�pend de l'usage que tu veux en faire...


    Citation Envoy� par feelwatt Voir le message
    document.getElementById('height').value!=0 est bien la deuxi�me condition
    Oui mais l� je pense que tu compares une string � un nombre et cela ne fonctionne pas... Quand dans une input (texte) tu as un 0, il s'agit de la string "0" et non du nombre 0.

    Alors il te faut convertir l'un des deux... Par exemple tu peux faire comme d�j� dit : document.getElementById('height').value != "0"


    Citation Envoy� par feelwatt Voir le message
    Je ne r�ussi pas � r�cup�rer la value avec

    const elemHeight = document.querySelector('#height');

    Faudrait-il faire ceci ?

    const elemHeight = document.querySelector(document.getElementById('height').value);
    Ni l'un ni l'autre, tu peux faire simplement : const valueOfElemHeight = document.getElementById('height').value ;

    Ou bien si tu fait :
    const elemHeight = document.getElementById('height') ;

    Alors tu peux r�cup�rer "value" comme �a :
    elemHeight.value.

    Citation Envoy� par feelwatt Voir le message
    On peut faire ca ?
    1
    2
    height=document.getElementById('height').value;
    if (height == 0) {h=1;} else {h=height;}

    Qui g�re la valeur 0 et la valeur '' (vide)
    Non mais dis-nous en fran�ais ce que tu veux faire...

    Si height vaut 0 tu veux fixer h � 1 ? Sinon tu veux que h=height ?
    Mais quand la chaine est vide, que veux-tu faire ?


    Attention height pourrait ne pas �tre un nombre, je te conseille (si ce n'est d�j� le cas) d�utiliser une input de type number avec une valeur min (fix� � 1 puisque tu ne veux pas d'un height � 0) et �ventuellement une valeur max...

  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
    document.getElementById('height').value est bien un nombre.


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    +document.getElementById('height').value // est bien un nombre.
    1*document.getElementById('height').value // est bien un nombre.
    Si la saisie dans l'input est num�rique [0-9.] ....
    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 �clair�
    Homme Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    257
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 257
    Par d�faut
    Salut,
    Merci pour les pr�cisions.
    c'est une input ou un textearea, non ? Si oui alors il s'agit bien d'une string
    D'accord, je n'avais pas pens� � �a.

    Donc:
    document.getElementById('height').value != "0"
    Et j'opte donc pour
    je te conseille (si ce n'est d�j� le cas) d�utiliser une input de type number avec une valeur min (fix� � 1 puisque tu ne veux pas d'un height � 0) et �ventuellement une valeur max...
    Avec un min="0".
    Comme �a �a �vite d'avoir � g�rer les chaines vide.

    Merci pour ces pr�cisieux infos.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Condition If multiple
    Par M1000 dans le forum ASP
    R�ponses: 2
    Dernier message: 01/03/2004, 13h46
  2. [MYSQL] conditions et requetes
    Par sebos63 dans le forum SQL Proc�dural
    R�ponses: 3
    Dernier message: 26/02/2004, 16h41
  3. Condition sur debug et release
    Par xave dans le forum MFC
    R�ponses: 3
    Dernier message: 04/02/2004, 15h04
  4. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    R�ponses: 6
    Dernier message: 23/12/2003, 01h00
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    R�ponses: 3
    Dernier message: 10/06/2003, 11h48

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