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 :

Savoir quelle option d'un select est sélectionné


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut Savoir quelle option d'un select est sélectionné
    Bonsoir à tous !
    Etant relativement novice en Javascript, j'ai cherché un bon moment sur Internet une solution à mon problème qui est le suivant :

    Je dispose d'un select comportant 4 options. J'y ai appliqué une fonction Javascript lors d'un onChange. Jusqu'ici, tout va bien.

    Mon soucis est le test que je dois faire dans ma fonction pour regarder quel option a été choisi par l'utilisateur. Chaque option a une value allant de 0 à 3.

    Concrètement, je fais ça pour chaque if en modifiant uniquement le chiffre comparé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(document.getElementById('monSelect').options[document.getElementById('monSelect').selectedIndex].value = 0){
    		//afficher un truc
    	}else{
    		//cacher le truc
    	}
    Ici, je devrai rentrer dans le vrai si je sélectionne le premier élement de ma liste déroulante et dans le faux des autres tests qui suivent (qui vérifient pour le value = 1,2 et 3). Bizarrement, ça me fait constamment faux pour le value = 0 et vrai pour les 3 autres...

    Donc ma question : mon test est-il faux ? Probablement. Quelle serait donc le bon test à faire pour savoir si j'ai sélectionné la première option de mon select, ou la seconde, ou la troisième, etc ?

    Je vous remercie d'avance. Je sais que ça doit paraitre évident comme réponse pour certains mais j'ai essayé des combinaisons avec le (blabla.selected = true) et le (blabla.selectedIndex = true) et ça fait un autre truc bizarre.

    Bref, un bel appel à l'aide !

    Merci ^^

  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
    selectedIndex retourne -1 si aucune selection n'est faite sinon un integer correspondant à l'indice dans le collection des options du select qui commence à 0
    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 du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut
    Merci de ta réponse !

    Je n'arrive néanmoins pas à savoir comment utiliser ce -1... J'ai essayé de remplacer le else par un else if ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value = 0){
    		document.getElementById("liste0").style.display='block';
    	}else if (document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value /=  -1){
    		document.getElementById("liste0").style.display='none';
    	}
    Mais bien sûr ça ne marche pas mieux et ça m'affiche directement tout dès que je change quelque chose

    Est ce que tu saurais comment je peux concrètement m'en servir ? Désolé de demander

    Edit : j'ai mis /= et c'est != en fait, mais ça ne change rien. J'ai confondu, pardon ^^

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value = 0)
    Attention !
    = est une affectation (équivalent booléen : true car l'affectation est réussie).
    Pour tester une valeur, c'est == !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut
    Merci énormément !
    Je fais cette erreur souvent et je n'ai pas pensé à y jeter un oeil
    Probablement une séquelle de l'ADA... ^^
    Je me sens vraiment stupide.
    Merci beaucoup pour l'avoir remarqué à ma place, ça marche très bien maintenant.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/01/2009, 23h16
  2. KeyStroke.getKeyStroke Savoir quelle touche est appuyée
    Par oOoOuuhmAn dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 08/06/2008, 19h48
  3. [VBA] Savoir quelle est la clé primaire inséré
    Par kissmytoe dans le forum Access
    Réponses: 1
    Dernier message: 07/03/2006, 08h48
  4. [javascript] Sélectionner l'option d'un select
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 26/10/2005, 17h35
  5. Réponses: 14
    Dernier message: 27/06/2005, 19h12

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