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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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 659
    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 659
    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 659
    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 659
    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