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écupérer la valeur sélectionnée dans un <select>


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut Récupérer la valeur sélectionnée dans un <select>
    Salut à tous,

    Je ne parviens pas à récupérer la valeur sélectionnée dans mon <select id='ref' ... >.

    Lorsque je tente "alert(ref.selectedIndex);", il ne se passe plus rien sur mon évènement. Et lorsque j'en lève cette ligne, j'ai de nouveau mes traces.

    Est-ce mon instruction est mauvaise ou est-ce qu'il y a un autre problème?

    Je fais pourtant comme j'ai pu trouver à plusieurs endroits sur le web...

    Merci d'avance.

    Voici ma fonction :
    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
     
    function resetFromTo(c, dates) {
     alert('onChange detecté');
     
     var ref = document.getElementById('ref');
     var from = document.getElementById('from');
     var to = document.getElementById('to');
     
     alert('onChange detecté');
     
     alert(ref.selectedIndex);
     //alert(ref.options[ref.selectedIndex].value);
     //alert(ref.options[ref.selectedIndex].text);
     from.selectedIndex = 0;
     to.selectedIndex = 0;
     
     /*for (i=0; i<dates.length; i++) {
      if (c[i]==ref.selectedIndex.value) {
       from.options.value = dates[i];
       from.options.text = dates[i];
      }
     }*/
     
     //from.disabled = true;
     //to.disabled = true;
    }
    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
    <script language='javascript'>
      var camp = new Array();
      var dates = new Array();
      camp[0] = 'ALM';dates[0] = '2008-12-31';
      camp[1] = 'ALM';dates[1] = '2009-01-31';
      camp[2] = 'ALM';dates[2] = '2009-02-28';
      camp[3] = 'ALM';dates[3] = '2009-03-31';
      camp[4] = 'ALM';dates[4] = '2009-04-30';
      camp[5] = 'ALM';dates[5] = '2009-05-31';
      camp[6] = 'ARPSON';dates[6] = '2009-05-16';
      camp[7] = 'ARPSON';dates[7] = '2009-05-23';
      camp[8] = 'ARPSON';dates[8] = '2009-05-30';
      camp[9] = 'ARPSON';dates[9] = '2009-06-06';
      camp[10] = 'ARPSON';dates[10] = '2009-06-13';
      camp[11] = 'ARPSON';dates[11] = '2009-06-20';
      camp[12] = 'CECAG';dates[12] = '2008-12-31';
      camp[13] = 'CECAGPR';dates[13] = '2008-12-31';
      camp[14] = 'RATIO';dates[14] = '2008-12-31';
      camp[15] = 'RATIO';dates[15] = '2009-01-31';
      camp[16] = 'RATIO';dates[16] = '2009-02-28';
      camp[17] = 'RATIO';dates[17] = '2009-03-31';
      camp[18] = 'RATIO';dates[18] = '2009-04-30';
      camp[19] = 'RATIO';dates[19] = '2009-05-31';
      camp[20] = 'SCL';dates[20] = '2008-12-31';
      camp[21] = 'SCL';dates[21] = '2009-01-31';
      camp[22] = 'SCL';dates[22] = '2009-02-28';
      camp[23] = 'SCL';dates[23] = '2009-03-31';
      camp[24] = 'SCL';dates[24] = '2009-04-30';
      camp[25] = 'SCL';dates[25] = '2009-05-31';
      camp[26] = 'TEST';dates[26] = '2008-12-31'; 
     </script>
     
     <select id="ref" name="camp" onchange="resetFromTo(camp, dates); return false;">
      <option value="">Choisir une campagne</option>
      <option selected='selected' value='ALM'>ALM</option>
      <option value='ARPSON'>ARPSON</option>
      <option value='CECAG'>CECAG - Indicateurs Mensuels</option>
      <option value='CECAGPR'>CECAG - Paramétrage</option>
      <option value='RATIO'>McDonough Ratio</option>
      <option value='SCL'>Synthese Client</option>  
     </select>

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select onchange="alert(this.value);">
    ...
    A+

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select onchange="alert(this.value);">
    ...
    A+

  4. #4
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select id="ref" name="camp" onchange="alert(this.value); resetFromTo(campagnes, dates);">
    Ca renvoie bien la valeur qui convient.

    J'arrive vraiment pas à comprendre ce qui cloche...

  5. #5
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Ah! ... Ca marche. Mais pas à tous les coups...

    Edit :

    Finalement, ça à l'air de bien marcher mais je ne comprends pas pourquoi ça à foiré. J'ai toujours le même code que j'ai tenté de puis le début.
    (Bon, il y a bien truc qui a du changer entre temps pour que ça fonctionne... Je suis pas encore complètement dingue. J'espère.)
    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
     
    function resetFromTo(c, dates) {
     alert('onChange detecté');
     
     var ref = document.getElementById('ref');
     var from = document.getElementById('from');
     var to = document.getElementById('to');
     
     alert(ref.selectedIndex);
     
     alert(ref.options[ref.selectedIndex].value);
     
     //alert(ref.options[ref.selectedIndex].value);
     //alert(ref.options[ref.selectedIndex].text);
     from.selectedIndex = 0;
     to.selectedIndex = 0;
     
     /*for (i=0; i<dates.length; i++) {
      if (c[i]==ref.selectedIndex.value) {
       from.options.value = dates[i];
       from.options.text = dates[i];
      }
     }*/
     
     //from.disabled = true;
     //to.disabled = true;
    }

  6. #6
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Alors, celle là elle est bonne. Maintenant que mon code marche, j'ai décidé de retirer mes traces.

    Par prudence, je les retire une par une.

    Ca, ça fonctionne parfaitement :
    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
     
    function resetFromTo(c, dates) {
     var ref = document.getElementById('ref');
     var from = document.getElementById('from');
     var to = document.getElementById('to');
     
     alert(ref.selectedIndex);
     
     alert(ref.options[ref.selectedIndex].value);
     
     //alert(ref.options[ref.selectedIndex].value);
     //alert(ref.options[ref.selectedIndex].text);
     from.selectedIndex = 0;
     to.selectedIndex = 0;
     
     /*for (i=0; i<dates.length; i++) {
      if (c[i]==ref.selectedIndex.value) {
       from.options.value = dates[i];
       from.options.text = dates[i];
      }
     }*/
     
     //from.disabled = true;
     //to.disabled = true;
    }
    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
     
    Ca, ça fonctionne aussi:
    function resetFromTo(c, dates) {
     var ref = document.getElementById('ref');
     var from = document.getElementById('from');
     var to = document.getElementById('to');
     
     
     
     alert(ref.options[ref.selectedIndex].value);
     
     //alert(ref.options[ref.selectedIndex].value);
     //alert(ref.options[ref.selectedIndex].text);
     from.selectedIndex = 0;
     to.selectedIndex = 0;
     
     /*for (i=0; i<dates.length; i++) {
      if (c[i]==ref.selectedIndex.value) {
       from.options.value = dates[i];
       from.options.text = dates[i];
      }
     }*/
     
     //from.disabled = true;
     //to.disabled = true;
    }
    Ca, ça ne fonctionne plus du tout :
    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
     
    function resetFromTo(c, dates) {
    var ref = document.getElementById('ref');
    var from = document.getElementById('from');
    var to = document.getElementById('to');
     
    alert(ref.options[ref.selectedIndex].value);
     
    //alert(ref.options[ref.selectedIndex].value);
    //alert(ref.options[ref.selectedIndex].text);
    from.selectedIndex = 0;
    to.selectedIndex = 0;
     
    /*for (i=0; i<dates.length; i++) {
    if (c[i]==ref.selectedIndex.value) {
    from.options.value = dates[i];
    from.options.text = dates[i];
    }
    }*/
     
    //from.disabled = true;
    //to.disabled = true;
    }
    Je ne comprends rien. honnêtement, j'ai l'impression que ça ne marche que quand ça le veut.
    Il y a bien quelque chose qui ne va pas dans mon code? Rassurez-moi (ou appelez un médecin).

  7. #7
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Lorsque j'essaie avec <select id='from' ... > ça fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(form.selectedIndex);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <select id="from" name="from" >
       <option></option>
       <option value="2008-12-31">31/12/2008</option>
       <option value="2009-01-31">31/01/2009</option>
       <option value="2009-02-28">28/02/2009</option>
       <option value="2009-03-31">31/03/2009</option>
       <option value="2009-04-30">30/04/2009</option>
       <option value="2009-05-31">31/05/2009</option>
      </select>

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Goupo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(form.selectedIndex);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select id="from" name="from" >
    Mouais ...

  9. #9
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Oui, ben dans mon code j'ai écrit : "from".

    J'ai fait une faute de frappe en l'écrivant à la main ici.

    La trace dans le onChange fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select id="ref" name="camp" onchange="alert('trace'); resetFromTo(camp, dates);">

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Salut,

    Tu ne fournis que le HTML de "ref", le problème vient peut-être du HTML de "from" ou de "to"

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/10/2012, 14h51
  2. Réponses: 5
    Dernier message: 08/04/2011, 14h06
  3. Récupérer ancienne valeur sélectionnée dans une combobox
    Par alys56 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/07/2008, 17h11
  4. Réponses: 3
    Dernier message: 25/04/2008, 11h25
  5. Réponses: 11
    Dernier message: 21/08/2007, 09h57

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