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 :

récuperer les "value" d'un select multiple


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 30
    Points
    30
    Par défaut récuperer les "value" d'un select multiple
    Bonjour, je n'arrive pas à récuperer les valeures des options de mon select multiple. j'ai essayé la methode Comment récupérer les valeurs d'un select multiple ? de denisC mais ça ne marche pas.
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
     
      <head>
            <meta http-equiv="content-type" content="text/html; utf-8" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
     
            <title>Gérer les jours ouvrés</title>
     
            <script type="text/javascript">
             function recupSelect()
            {
                var selectedList = new Array();
                var selectBox = document.forms[0].choixAnnee;
                for (var i=0; i<selectBox.options.length; i++) {
                  if (selectBox.options[i].selected) {
                    selectedList.push(selectBox.options[i]);
                  }
                }
                var alertTxt = "";
                for (opt in selectedList) {
                    alertTxt += "L'option "+opt.value+" est selectionnée \n";
                }
                alert(alertTxt);
            }
     
            </script>
     
      </head>
     
      <body>
      <form>
      <select id="choixAnnee" multiple="true" onclick="javascript:recupSelect();">
                 <option value="toutes"> Toutes </options>
                <option value="1999">1999</option>
                <option value="2000">2000</option>
                <option value="2001">2001</option>
      </select>
      </form>
     
     
      </body>
     
    </html>
    Le alert donne la valeure "undefined" pour opt.value. En revanche il donne le bon nombre d'options selectionnées.

    Merci à vous

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    laisse lui de temps de se rendre compte qui'l a une modifiaction de selection
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
     
      <head>
            <meta http-equiv="content-type" content="text/html; utf-8" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
     
            <title>Gérer les jours ouvrés</title>
     
            <script type="text/javascript">
             function recupSelect()
            {
                var selectedList = new Array();
                var selectBox = document.forms[0].choixAnnee;
                for (var i=0; i<selectBox.options.length; i++) {
                  if (selectBox.options[i].selected==true) {
                    selectedList.push(selectBox.options[i]);
                  }
                }
                var alertTxt = "";
                for (opt in selectedList) {
                    alertTxt += "L'option "+selectedList[opt].value+" est selectionnée \n";
                }
                alert(alertTxt);
            }
     
            </script>
     
      </head>
     
      <body>
      <form>
      <select id="choixAnnee" multiple="true" onmouseup="javascript:setTimeout(function(){recupSelect()},100);">
                 <option value="toutes"> Toutes </options>
                <option value="1999">1999</option>
                <option value="2000">2000</option>
                <option value="2001">2001</option>
      </select>
      </form>
     
     
      </body>
     
    </html>
    doubler l'instruction sur le onkeypup ... pour couvrir également la selection avec touches

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    C'était donc ça !! Je pouvais chercher encore longtemps, ça ne m'était pas venu du tout à l'idée. Merci pour tout

    PS: le function(){..} sert à quoi ?

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    un setTimeout attend prioritairemetn une fonction, si tu lui passes un string il va parser le string = perte de temps et d'efficacité ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    ok compris. Encore merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/05/2006, 16h09
  2. Réponses: 12
    Dernier message: 02/05/2006, 19h37

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