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 :

Valeur par défaut dans la seconde liste de 2 listes liées


Sujet :

JavaScript

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

    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 47
    Points
    47
    Par défaut Valeur par défaut dans la seconde liste de 2 listes liées
    Bonjour à tous,

    Voici mon problème. J'ai deux listes liées qui pour un région (sel1)
    affiche les départements de celle-ce (sel2). La seconde liste est crée
    à l'aide d'une fonction Javascript (gensel2).

    Je souhaite par exemple que la région "Centre" soit sélectionnée par
    défaut, j'ai donc mis "selected" dans la liste sel1 et cela
    fonctionne. Le problème est qu'au premier affichage, les départements
    de la région "Centre" ne sont pas affichés (c'est sûrement du à la
    fonction qui n'est appelée qu'à l'évèneùent onchange()). J'aimerai
    d'ailleurs que le département "Indre" soit sélectionné. J'ai donc
    tenté le "document.frm.sel2.selectedIndex = 2;" mais cela ne
    fonctionne pas...

    Comment puis-je faire ? Pouvez-vous m'aider ?

    Voici un exemple de code que j'utilise. Merci par avance pour votre
    aide précieuse.

    Aurélien

    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
    40
    41
    42
    43
    44
    45
    46
    <HTML> 
    <HEAD> 
    <TITLE>2 Selects dépendants en JavaScript</TITLE> 
     
    <script type="text/javascript"> 
    function gensel2(nom_formulaire) {
     
            var s1 = document.forms[nom_formulaire].sel1; 
            var s2 = document.forms[nom_formulaire].sel2; 
            s2.length = 0;
     
            for(var n=0; n < liste[s1.selectedIndex].length; n++) { 
                    s2.length++; 
                    s2.options[s2.length-1].text = liste[s1.selectedIndex][n]; 
            }
    }
     
    </script> 
    </HEAD> 
     
    <BODY> 
    <form name="frm"> 
            <select name="sel1" id="sel1" onChange="gensel2('frm');"> 
                    <optgroup label="Régions"> 
                            <option>Bretagne</option> 
                            <option selected>Centre</option> 
                            <option>Nord-Pas-de-Calais</option> 
                    </optgroup> 
            </select>
     
            <select name="sel2" id="sel2"> 
                    <optgroup label="Départements"></optgroup> 
            </select> 
    </form>
     
    <script type="text/javascript"> 
     
    var liste =       new Array(  new Array("Côtes-d'Armor","Finistère","Ille-et-Vilaine","Morbihan"), 
                      new Array("Cher","Eure-et-Loire","Indre","Indre-et-Loire","Loir- 
    et-Cher","Loiret"), 
                      new Array("Nord","Pas-de-Calais"));
     
    document.frm.sel2.selectedIndex = 2; 
    </script> 
    </BODY> 
    </HTML>

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Essaie comme ça :

    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
    40
    41
    42
    43
    44
    45
    46
    47
     
    <HTML> 
    <HEAD> 
    <TITLE>2 Selects dépendants en JavaScript</TITLE> 
     
    <script type="text/javascript">
     
    var liste =       new Array(new Array("Côtes-d'Armor","Finistère","Ille-et-Vilaine","Morbihan"), 
                      new Array("Cher","Eure-et-Loire","Indre","Indre-et-Loire","Loir-et-Cher","Loiret"),
                      new Array("Nord","Pas-de-Calais"));
     
    function gensel2(nom_formulaire) {
            var s1 = document.forms[nom_formulaire].sel1; 
            var s2 = document.forms[nom_formulaire].sel2; 
            s2.length = 0;
     
            for(var n=0; n < liste[s1.selectedIndex].length; n++) { 
                    s2.length++; 
                    s2.options[s2.length-1].text = liste[s1.selectedIndex][n]; 
            }
    }
     
    </script> 
    </HEAD> 
     
    <BODY> 
    <form name="frm"> 
            <select name="sel1" id="sel1" onChange="gensel2('frm');"> 
                    <optgroup label="Régions"> 
                            <option>Bretagne</option> 
                            <option selected>Centre</option> 
                            <option>Nord-Pas-de-Calais</option> 
                    </optgroup> 
            </select>
     
            <select name="sel2" id="sel2"> 
                    <optgroup label="Départements"></optgroup> 
            </select> 
    </form>
     
    <script type="text/javascript"> 
      gensel2('frm');
      document.frm.sel2.options[1].selected = true;
    </script> 
     
    </BODY> 
    </HTML>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 47
    Points
    47
    Par défaut
    Merci !!!

    Par contre il faut inverser les deux lignes pour que ça fonctionne car sinon les valeurs de la liste s'affichent mais aucun élément n'est sélectionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript"> 
      gensel2('frm');
      document.frm.sel2.selectedIndex = 2;
    </script>

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

Discussions similaires

  1. valeur par défaut dans une liste déroulante
    Par fastpulse dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/01/2008, 10h02
  2. Réponses: 4
    Dernier message: 05/06/2007, 09h16
  3. Réponses: 8
    Dernier message: 27/06/2006, 11h47
  4. Valeur par défaut dans une liste déroulante
    Par zoom61 dans le forum IHM
    Réponses: 1
    Dernier message: 12/06/2006, 09h00
  5. Sélection valeur par défaut dans une zone de liste
    Par Cécile154 dans le forum IHM
    Réponses: 2
    Dernier message: 15/02/2005, 18h20

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