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 d'un select


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Récupérer la valeur d'un select
    Bonsoir,

    J'ai plusieurs <select> dans une page définis avec des id. Je récupére la valeur du <select> actif. Cela fonctionne
    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
     
    <body>
    <form name="search">
    <select id="quoi_1" size="6" onchange="id0=this.id;" onclick="findInPage()">
    <option value="ab">ab</option>
    <option value="ac">ac</option>
    </select>
    </div>
     
    <div id="smenu2">	
    <select id="quoi_2" size="6" onchange="id0=this.id;" onclick="findInPage()">
    <option value="bd">bd</option>
    <option value="cd">cd</option>
    </select>
    </div>
     
    <div id="smenu3">	
    <select id="quoi_3" size="6" onchange="id0=this.id;" onclick="findInPage()">
    <option value="ef">ef/option>
    <option value="eg">eg</option>
    </select>
    </div>
     
    <div id="smenu4">	
    <select id="quoi_4" size="6" onchange="id0=this.id;" onclick="findInPage()">
    <option value="gh">avec</option>
    <option value="moins">moins</option>
    </select>
    </div>
    </form>
    </body>
    Mais je voudrais une autre méthode que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onchange="id0=this.id;"
    pour récupérer cette valeur car j'ai besoin de onchange pour réinitialiser une variable.


    voici mon code javascript (pas dans le détails car il fonctionne et qu'il est long):


    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
     
    var id0;
     
    function findInPage()
    {
     
    var string = document.getElementById(id0).options[document.getElementById(id0).selectedIndex].value;
     
     
    ...
     
    ...
     
    ...
     
    document.onkeypress=appuieTouche;
     
    ...
     
    }
     
     
    function appuieTouche
    {
    if (document.all)
      {
        if (event.keyCode==13) 
        {
        findInPage();
        }
      } 
      else 
      {
        if (e.which==13)
        { 
        findInPage();
        }
      }
    }


    Je pourrais faire comme ceci :


    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
     
    function findInPage()
    {
    var string = document.search.quoi_1.options[document.search.quoi_1.selectedIndex].value;
     
    ...
     
    ...
     
    ...
     
    document.onkeypress=appuieTouche;
     
    ...
     
    }
     
     
    function appuieTouche
    {
    if (document.all)
      {
        if (event.keyCode==13) 
        {
        findInPage(document.search.quoi_1.options[document.search.quoi_1.selectedIndex].value);
        }
      } 
      else 
      {
        if (e.which==13)
        { 
        findInPage(document.search.quoi_1.options[document.search.quoi_1.selectedIndex].value);
        }
      }
    }

    Mais là je lui indique l'id du <select> càd quoi_1 et je ne vais pas faire une fonction pour chacun de mes <select> car il y en a beaucoup.


    Merci pour votre aide.

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    et enquoi le fait de mettre id0=this.id dans le opnchange t'empèche di'itialiser aussi la variable ?
    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 averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Récupérer la valeur d'un select
    Bonsoir,

    J'ai essayé et çà bug.

    Ma fonction me permet de faire une recherche dans ma page à l'aide des choix de chacun des menus déroulants.

    Si je commence une recherche et qu'au cours de ma recherche je fais un nouveau choix, la recherche doit repartir du haut du document. Pour cela je dois donc réinitialiser ma variable : var n=0; qui est déclarée en dehors de mes fonctions et je me sers donc du onchange : onchange="n=0";

    J'ai essayé çà mais cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <...onchange="id0=this.id;n=0;" onclick="findInPage()"....>

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    et ta variable n est déclarée en global ?
    Sans voir le code c'est difficile de t'aider ...
    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 !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Récupérer la valeur d'un select
    Je mets le code. Oui la variable n est déclarée en global.

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <script type="text/javascript">
    var n = 0;
    var id0;
     
     
    function findInPage()
    {
    var txt, x, found;
    var string = document.getElementById(id0).options[document.getElementById(id0).selectedIndex].value;
     
     if (string != "")
     {
     
       if (document.all) 
       {
         //i.e
         txt = window.document.body.createTextRange();
         for (x = 0; x <= n && (found = txt.findText(string)) != false; x++) 
         {
         //moveStart(String mode, Integer n)
         //Définit l'unité à utiliser. Déclenche une erreur "Argument non valide" dans le cas où l'unité est inconnue
         //Définit le nombre d'unités que le curseur de départ doit se déplacer, relativement à sa position d'origine.
         txt.moveStart("character", 1);
         //moveEnd()
         //Moves the end position of a text to a new location
         //textedit = start or end of the text range
         txt.moveEnd("textedit");
         }
     
         if (found) 
         {
         //Si texte trouvé, le sélectionner et faire défiler la page pour qu'il soit visible
         txt.moveStart("character", -1);
         txt.findText(string);
         txt.select();//crée une sélection active sur le texte
         txt.scrollIntoView();//fait défiler jusqu'au texte
         n++;
         document.onkeypress=appuieTouche;//on appuie sur la touche entrée pour voir les occurences
         }
         else 
         {
         //Si plus de texte trouvé alors recherche terminée. Réinitialisation du compteur.
         //On renvoit sur une ancre pour voir les menus déroulants.
         location.href='#haut';
         document.onkeypress="";
         alert("La recherche est terminée.");
         n = 0;
         }
       }
       else
       {
       //autres navigateurs. Utilisation de window.find() au lieu de createTextRange()
         //Si texte trouvé, le sélectionner et faire défiler la page pour qu'il soit visible  
         if (window.find(string))
         {
         n++;
         document.onkeypress=appuieTouche;
         }
         else
         {
         location.href='#haut';
         findInPage();
         //Même fonctionnalité que les 2 lignes du dessus mais le focus revient sur le texte et donc on ne
         //voit pas les menus déroulants. 
         //while(window.find(string, false, true)); 
         //n++;
         }  
       }
     }    
     return false;	
    }
     
    function appuieTouche(e)
    {
      if (document.all)
      {
        if (event.keyCode==13) 
        {
        findInPage();
        }
      } 
      else 
      {
        if (e.which==13)
        { 
        findInPage();
        }
      }
    }
    </script>

  6. #6
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function findInPage(selectField)
    {
    var txt, x, found;
    var string = selectField.options[selectField.selectedIndex].value;
     
    .....
     
    <select onchange="findInPage(this)">

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Récupérer la valeur d'un select
    Bonjour,

    Cela ne fonctionne pas car quelle est la valeur de id0?

    Merci

  8. #8
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    l'ai virée.
    ps j'ai édité le code car pas vu le deuxième

    sinon id0=selectField.id

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Récupérer la valeur d'un select
    Je ne connais pas selectField. J'ai fais une recherche sur google mais pas beaucoup de résultat.

    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var string = selectField.options[document.getElementById(selectField.id).selectedIndex].value;
    Cela récupère bien la valeur du select mais ma deuxième fonction appuieTouche() ne marche plus car elle a aussi besoin de récupérer cette valeur.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Récupérer la valeur d'un select
    Autant pour moi pour le selectField. J'ai cru que c"était une fonction.
    J'ai les yeux qui croisent depuis que je tourne autour de ce problème!

Discussions similaires

  1. Comment récupérer la valeur de c select
    Par Tarba dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 30/06/2006, 15h52
  2. [JSP] Récupérer les valeurs d'un SELECT multiple
    Par ran_hery dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 15/05/2006, 15h56
  3. récupérer une valeur dans un selected
    Par lacfab dans le forum Langage
    Réponses: 6
    Dernier message: 14/12/2005, 09h48
  4. Récupérer les valeurs d'un <select> multiple
    Par vg33 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/10/2005, 11h38
  5. récupérer la valeur d'un select dans un autre
    Par alexander dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2005, 19h43

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