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

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
grandzebu

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

Message 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 !
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message 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.
Grandzebu

Message 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
yansanmo

des exemples qui fonctionnent

Message 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
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

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

Message 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
« La vie d’un geek est un combat perpétuel contre l’imperfection »
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message par olab »

Essaye en écrivant ID en minuscule plutôt qu'en majuscule => id
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité