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 :

Menu déroulant si bouton radio coché


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Menu déroulant si bouton radio coché
    Bonjour à tous,

    J'ai beau chercher et je ne trouve pas vraiment d'explication simple à ce que je cherche à faire et je pense que cela ce fait en javascript mais je n'y connais pas grand chose.

    En fait, sur une de mes pages, je souhaiterais proposé à l'utilisateur plusieurs choix via plusieurs bouton radio et qu'en fonction du bouton activé cela affiche le menu déroulant correspondant.

    Pour réaliser les boutons radio et les menu déroulant pas de soucis, en revanche combiné les deux...

    Merci d'avance à vous tous.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Salut, je t'ai fait un exemple : http://jsfiddle.net/GB8mL/

    Code html : 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
    <input name="choixmenu" type="radio" value="menu1">Menu 1</input>
    <input name="choixmenu" type="radio" value="menu2">Menu 2</input>
    <input name="choixmenu" type="radio" value="menu3">Menu 3</input>
     
    <select class="selectmenu" id="menu1">
        <option>a</option>
        <option>b</option>
        <option>c</option>
    </select>
     
    <select class="selectmenu" id="menu2">
        <option>d</option>
        <option>e</option>
        <option>f</option>
    </select>
     
    <select class="selectmenu" id="menu3">
        <option>g</option>
        <option>h</option>
        <option>i</option>
    </select>

    Code js : 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
    function showMenu(selectedMenu){
        var selects = document.querySelectorAll("select.selectmenu");
        for(var i=0; i<selects.length; i++){
           var isVisible = (selects[i].getAttribute("id") === selectedMenu);
           selects[i].style.display = isVisible ? "block" : "none";
        }
    }
     
    var radios = document.getElementsByName("choixmenu");
    for(var e=0; e<radios.length; e++){
        radios[e].addEventListener("click", function(){
            if(this.checked){
                showMenu(this.value);           
            }
        });
    }
     
    showMenu("aucun_au_depart");

    En espérant que ça t'aide
    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup !

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    A noter que l'évènement click utilisé sur les boutons radio ne convient pas si le bouton est sélectionné avec le clavier. Et l'évènement "change" fonctionne mal avec les boutons radio selon le navigateur, ce qui rend les choses assez compliquées. Si l'accessibilité est importante, il vaudrait peut-être mieux rajouter les évènements focus et blur par prudence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    radios[e].addEventListener("click", onRadioChange);
    radios[e].addEventListener("focus", onRadioChange);
    radios[e].addEventListener("blur", onRadioChange);
     
    function onRadioChange(){
            if(this.checked){
                showMenu(this.value);           
            }
    }

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

Discussions similaires

  1. [PHP-JS] décocher un bouton radio coché
    Par kluck3000 dans le forum Langage
    Réponses: 1
    Dernier message: 29/05/2007, 09h04
  2. [PHP-JS] récupérer un bouton radio coché
    Par kluck3000 dans le forum Langage
    Réponses: 4
    Dernier message: 20/04/2007, 16h19
  3. bouton radio coché ou pas?
    Par franfr57 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/04/2007, 14h59
  4. [CGI] bouton radio coché non désiré
    Par gerald2545 dans le forum Web
    Réponses: 4
    Dernier message: 12/09/2006, 13h19
  5. annuler un bouton radio coché
    Par allowen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/05/2005, 12h41

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