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 :

Childnode et valeur d'une option


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 23
    Points
    23
    Par défaut Childnode et valeur d'une option
    Bonjour à tous,

    Je me trouve dans la position amusante de devoir écrire un peu de javascript alors que je ne connais pas le langage...

    Je cherche à manipuler les options d'un select et j'ai qqs bizareries.
    Ma form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <FORM ACTION="http://www.google.be/search" NAME="testForm" onSubmit="true">
    	<select name="q"> Query
    			<OPTION VALUE="S1"> E1
    			<OPTION VALUE="S2"> E2
    			<OPTION VALUE="S3"> E3
    			<OPTION VALUE="S4"> E4
    			<OPTION VALUE="S5"> E5
    	</select>
    </FORM>
    Le javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      function feedback_select()
    {
       document.write("<BR> The query value:");
       document.write(document.testForm.q.value); // Done S1 (ou S2,...)
       var quer = document.getElementById('q');
       document.write(quer.childNodes.length); // Donne 6 sur Explorer, 5 sur opera : Explorer rajoute en indice 0 un #text de valeur "Query"
       document.write(quer.childNodes[1].childNodes[0].nodeValue); Donne E1 ou E2 
    }
    J'ai un petit peu simplifié mon code, j'espère ne pas avoir introduit d'erreur en le faisant.

    La différence entre Opera et Explorer est gênante (lequel respecte les specs?) mais contournable en itérant sur les childNodes et en vérifiant le type des noeuds, cette manipulation est déjà présente dans mon code réel.

    Mon problème, est que j'aimerais récuperer les valeurs "S1", S2" etc dans mon script et non pas les "E1", "E2" qui sont destinés à être montrés à l'utilisateur mais pas à être utilisés tels quels. Quelqu'un sait comment faire?


    (Note: L'action de faire une recherche google n'est pas l'utilité finale de mon code, c'est juste un truc facile pour faire des tests. L'utilité finale, sera d'utiliser javascript pour changer les champs présents dans mon select selon la valeur retournée par une applet et de stocker l'option choisie par l'utilisateur dans un cookie. Le probème exposé ici n'est donc qu'une petite partie du schmilblic.)

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    A priori, c'est normal que le comportement soit bizarre, parce que le code est bizarre aussi ^^

    1/ Ferme tes option déja : <OPTION VALUE="S1"> E1</OPTION>
    2/ Tu ne peux pas mettre de texte dans un select sans qu'il soit dans un option

  3. #3
    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 641
    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 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut
    de plus l'utilisation de childNodes est à utiliser avec des pincettes, car ne donne pas le même resultat en fonction des navigateurs ...

    et accessoirement la FAQ et les contributions sont pleins de srcipts de gestion des options ...

    mieux vaut passer par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monselect').getElementsByTagName('option')

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Merci.

    Adieu les childNodes et bonjour les scripts de la FAQ :-)

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

Discussions similaires

  1. Recuperer la valeur d'une option d'un select
    Par bastian06n dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 26/07/2010, 23h18
  2. Onclick: changer la valeur d'une option
    Par Plougy dans le forum jQuery
    Réponses: 2
    Dernier message: 26/05/2010, 13h24
  3. Changement de la valeur d'une option
    Par belkhayaty dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/03/2009, 18h44
  4. Comment récupérer la valeur d'une <option> d'un <select> ?
    Par beninsky dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/02/2009, 18h36
  5. Comment changer dynamiquement la valeur d'une option de DbGrid ?
    Par Atrebate62 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/03/2005, 13h35

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