OVH Cloud OVH Cloud

getElementById?? getElementsByName?? je sèche

7 réponses
Avatar
JPW
Bonjour

Je voudrais récuperer une valeur dans une liste déroulante dans un div
d'après le script ci-dessous:

<div id="tool1">
</div>
...........
<div id="idAide0"><table><tr> <td>
<select name="CbNoms" size="20" onclick="Changenom()">
<option value="239">nom1</option>
<option value="524" >nom12</option>
<option value="521" >nom13</option>
<option value="567" >nom14</option>
</select>
</td></tr></table></div>
........................
function Changenom(){
document.getElementById('tool1').innerHTML=document.getElementsByName('CbNoms').options[document.getElementsByName('CbNoms').selectedIndex].text
}

J'ai essayé plusieurs façon avec getElementById et getElementsByName ,
mais aucune ne marche.

QQ1 aurait-il la syntaxe correcte?

Merci

JPW

7 réponses

Avatar
Christophe PEREZ
Le Wed, 24 Aug 2005 18:18:39 +0200, JPW a écrit:

Bonjour


bonjour,

J'ai essayé plusieurs façon avec getElementById et getElementsByName ,
mais aucune ne marche.


Pourtant, sur mon firefox, ça fonctionne avec l'id.
<select id="CbNoms" name="CbNoms" size="20" onclick="Changenom()">

et :
document.getElementById('tool1').innerHTML=document.getElementById('CbNoms').options[document.getElementById('CbNoms').selectedIndex].text;

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
ASM
JPW wrote:
Bonjour

Je voudrais récuperer une valeur dans une liste déroulante dans un div
d'après le script ci-dessous:

<div id="tool1">
</div>
...........
<div id="idAide0"><table><tr> <td>
<select name="CbNoms" size="20" onclick="Changenom()">
<option value="239">nom1</option>
<option value="524" >nom12</option>
<option value="521" >nom13</option>
<option value="567" >nom14</option>
</select>
</td></tr></table></div>
........................
function Changenom(){
document.getElementById('tool1').innerHTML=document.getElementsByName('CbNoms').options[document.getElementsByName('CbNoms').selectedIndex].text

}


je ne pratique pas getElementsByName()

mais ... je dirais d'essayer :
- sans 's' à Element
getElementByName('CbNoms').
ou
- en précisant lequel des éléments nommés 'CbNoms'
getElementsByName('CbNoms')[0].

il eût été + simple :

function Changenom(sel){
document.getElementById('tool1').innerHTML=sel.options[sel.selectedIndex].text

}
et
<select name="CbNoms" size="20" onclick="Changenom(this)">


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
O.L.
ASM a couché sur son écran :
JPW wrote:
Bonjour

Je voudrais récuperer une valeur dans une liste déroulante dans un div
d'après le script ci-dessous:

<div id="tool1">
</div>
...........
<div id="idAide0"><table><tr> <td>
<select name="CbNoms" size="20" onclick="Changenom()">
<option value="239">nom1</option>
<option value="524" >nom12</option>
<option value="521" >nom13</option>
<option value="567" >nom14</option>
</select>
</td></tr></table></div>
........................
function Changenom(){
document.getElementById('tool1').innerHTML=document.getElementsByName('CbNoms').options[document.getElementsByName('CbNoms').selectedIndex].text

}


je ne pratique pas getElementsByName()

mais ... je dirais d'essayer :
- sans 's' à Element
getElementByName('CbNoms').


T'es sûr que ça existe, getElementByName() ?
Le 's' n'est pas une erreur, getElementsByName existe bien, en effet il
peut y avoir plusieurs éléments avec le même name, comme des bouttons
radios par exemple.


Avatar
JPW
JPW wrote:

Bonjour

Je voudrais récuperer une valeur dans une liste déroulante dans un div
d'après le script ci-dessous:

<div id="tool1">
</div>
...........
<div id="idAide0"><table><tr> <td>
<select name="CbNoms" size="20" onclick="Changenom()">
<option value="239">nom1</option>
<option value="524" >nom12</option>
<option value="521" >nom13</option>
<option value="567" >nom14</option>
</select>
</td></tr></table></div>
........................
function Changenom(){
document.getElementById('tool1').innerHTML=document.getElementsByName('CbNoms').options[document.getElementsByName('CbNoms').selectedIndex].text

}



je ne pratique pas getElementsByName()

mais ... je dirais d'essayer :
- sans 's' à Element
getElementByName('CbNoms').
ou
- en précisant lequel des éléments nommés 'CbNoms'
getElementsByName('CbNoms')[0].

il eût été + simple :

function Changenom(sel){
document.getElementById('tool1').innerHTML=sel.options[sel.selectedIndex].text

}
et
<select name="CbNoms" size="20" onclick="Changenom(this)">


C'est la solution que j'utiliserai.

MErci
JPW


Avatar
ASM
O.L. wrote:
ASM a couché sur son écran :

je ne pratique pas getElementsByName()

mais ... je dirais d'essayer :
- sans 's' à Element
getElementByName('CbNoms').


T'es sûr que ça existe, getElementByName() ?


comme dit : je n'utilise pas (traduc : çà existe ?)
(ce ByName n'est pas reconnu partout, si je ne me trompe)

Le 's' n'est pas une erreur, getElementsByName existe bien, en effet il
peut y avoir plusieurs éléments avec le même name, comme des bouttons
radios par exemple.


d'où proposition 2 :-)
(à revoir dans post precedent)

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
O.L.
ASM avait écrit le 24/08/2005 :
O.L. wrote:
ASM a couché sur son écran :

je ne pratique pas getElementsByName()

mais ... je dirais d'essayer :
- sans 's' à Element
getElementByName('CbNoms').
T'es sûr que ça existe, getElementByName() ?



comme dit : je n'utilise pas (traduc : çà existe ?)


Ben alors je répond à ta question :p
(En posant une pseudo-question ...)

(ce ByName n'est pas reconnu partout, si je ne me trompe)


Oui, je crois qu'avec FF ça n'existe pas.



Avatar
Christophe
ASM avait écrit le 24/08/2005 :

O.L. wrote:

ASM a couché sur son écran :


je ne pratique pas getElementsByName()

mais ... je dirais d'essayer :
- sans 's' à Element
getElementByName('CbNoms').


T'es sûr que ça existe, getElementByName() ?



comme dit : je n'utilise pas (traduc : çà existe ?)



Ben alors je répond à ta question :p
(En posant une pseudo-question ...)

(ce ByName n'est pas reconnu partout, si je ne me trompe)



Oui, je crois qu'avec FF ça n'existe pas.


En fait il s'agit de la méthode getElementByTagName :

http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document

Mais elle renvoit toujours un tableau d'éléments, puisqu'il peut y en
avoir plusieurs. Donc il faut toujours utiliser [0] même si on est sur
d'en recevoir un seul. C'est pourquoi on préfère généralement utiliser
getElementById() qui ne renvoit qu'un seul élément, pour autant que l'on
ai défini l'attribut "id" dans le tag en question. (certains navigateur
utilise l'attribut name quand id n'est pas spécifié, mais ce n'est pas
une règle générale, ni commune)

La syntaxe correcte devrait être :

function Changenom(){
document.getElementById('tool1').innerHTML=document.getElementsByTagName('CbNoms')[0].options[document.getElementsTagByName('CbNoms')[0].selectedIndex].text;
}