Page 1 sur 1

Problème avec GetElementById - Pas de propriétées

Publié : 13 avr. 2004, 22:45
par grandzebu
Bonjour,
Un javascript me donne l'erreur suivante :
Erreur : document.getElementById("liste") has no properties

Voici le code en question :
document.getElementById('liste').value = chaine;

J'ai bien un élement appelé 'liste' définit comme suit :
<INPUT TYPE='hidden' NAME='liste'>

Avec IE ça marche ! Après recherche il semble que beaucoup de monde ait un problème similaire. Y aurait-il un os dans l'interpréteur Javascript ?
Si quelqun a une idée !

Publié : 13 avr. 2004, 22:56
par chBok
Oui, une idée...
getElementById sert à récupérer un objet par son id, mais pas par le nom du champ formulaire name.
document.getElementById('form').liste.value=chaine devrait être mieux, où form serait l'id du formulaire. document.form[0].liste.value devrait fonctionner aussi, si le formulaire est le n° 0.

Publié : 13 avr. 2004, 23:18
par Grandzebu
Ben non ça marche pas mieux. Par contre je viens de trouver il faut aussi donner le nom à la propriété ID comme ça :
<INPUT TYPE='hidden' NAME='liste' ID='liste'>
Merci pour la réponse
GZ

des exemples qui fonctionnent

Publié : 14 avr. 2004, 00:17
par yansanmo
Soit le document HTML suivant:

Code : Tout sélectionner

<html><body>
<form name="nameform" id="idform">
<input type="hidden" name="nameliste" id="idliste">
</form>
</body></html>
On peut récupérer la valeur de l'input par:

Code : Tout sélectionner

document.forms[0].elements[0].value  <-- première balise form, premier élément.
document.forms['nameform'].elements['nameliste'].value <-- balise form avec le nom nameform et élément du formulaire avec le nom nameliste.

document.forms.nameform.nameliste.value <-- avec les noms

document.getElementById('idform').nameliste.value <-- avec l'id du formulaire
document.getElementById('idliste').value <-- avec l'id du champ input
et toutes les autres variantes...

avec mozilla, il y a aussi:

Code : Tout sélectionner

document.getElementsByTagName('input')[0].value
--
Yan Morin

Re: Problème avec GetElementById - Pas de propriétées

Publié : 14 avr. 2004, 11:44
par Bobe
grandzebu a écrit : Avec IE ça marche !
C'est un bug de IE.
  • Avec getElementById, tu récupères les éléments par leur ID.
    Un appel à cette méthode renvoie l'élément correspondant à cet id (un id étant unique)
  • Avec getElementsByName, tu récupères les éléments par leur nom (attribut name). Cela est valable pour les éléments qui peuvent avoir un tel attribut)
  • Ou si c'est spécifique à un formulaire, tu peux aussi utiliser document.forms['***'].elements['***']
    Pour les deux tableaux (forms et elements), tu peux utiliser l'ID, le nom ou l'index de l'objet voulu.
Attention à ne pas confondre id et name, seules les commandes de formulaire avec un name auront leur paire nom/valeur passée au script cgi

Publié : 15 avr. 2004, 00:10
par olab
Essaye en écrivant ID en minuscule plutôt qu'en majuscule => id