Javascript, getElementById() imbriqués
samyghan
Messages postés
73
Date d'inscription
Statut
Membre
Dernière intervention
-
samyghan Messages postés 73 Date d'inscription Statut Membre Dernière intervention -
samyghan Messages postés 73 Date d'inscription Statut Membre Dernière intervention -
Bonjour CCM,
J'ai une question en Javascript : peux-on imbriquer les getElementById() ?
Car mon script ne marche pas :
var cHTML = document.getElementById("form1").innerHTML;
var valeurChamp = cHTML.getElementById("champ").value;
alert(valeurChamp);
Ca plante et ça n'affiche pas "bonjour", pourtant quand j'affiche cHTML j'ai bien :
<div id="form1"><input type="text" id="champ" value="bonjour" size="40"></div>
Voilà, si quelqun a une idée :) ! Merci
J'ai une question en Javascript : peux-on imbriquer les getElementById() ?
Car mon script ne marche pas :
var cHTML = document.getElementById("form1").innerHTML;
var valeurChamp = cHTML.getElementById("champ").value;
alert(valeurChamp);
Ca plante et ça n'affiche pas "bonjour", pourtant quand j'affiche cHTML j'ai bien :
<div id="form1"><input type="text" id="champ" value="bonjour" size="40"></div>
Voilà, si quelqun a une idée :) ! Merci
A voir également:
- Javascript, getElementById() imbriqués
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Erreur #125 javascript - Forum Mozilla Firefox
- Javascript arrondi - Forum Javascript
2 réponses
Salut
Ca marcherait avec ca :
var cHTML = document.getElementById("form1")
Mais le innerHTML te renvoie une chaine de caractère. Tu ne peux donc plus utiliser les objets décris dedans
Ca marcherait avec ca :
var cHTML = document.getElementById("form1")
Mais le innerHTML te renvoie une chaine de caractère. Tu ne peux donc plus utiliser les objets décris dedans
Bonjour,
var cHTML = document.getElementById("form1").innerHTML;
var valeurChamp = cHTML.getElementById("champ").value;
alert(valeurChamp);
comme cela tu n'applique pas le bon principe
tu mélanges l'accès à un objet par le nom et l'accès par l'id
par le nom il faut effectivement fait document.form.champ.value
par l'id on l'atteint directement
pour atteindre un champ du formulaire
<input type="text" name="champ1" id="champ1" value="">
tu fais
et de plus inner.HTML permet d'écrire dans l'objet et pas de le selctionner comme tu l'as fait
attention pour ecrire dans un div on utilise inner.HTML
pour ecrire dans un input on utilises .value
ex:
pour lire: var valeurChamp=document.getElementById("champ1").value;
pour ecrire:
document.getElementById("champ1").value="Bonjour";
var cHTML = document.getElementById("form1").innerHTML;
var valeurChamp = cHTML.getElementById("champ").value;
alert(valeurChamp);
comme cela tu n'applique pas le bon principe
tu mélanges l'accès à un objet par le nom et l'accès par l'id
par le nom il faut effectivement fait document.form.champ.value
par l'id on l'atteint directement
pour atteindre un champ du formulaire
<input type="text" name="champ1" id="champ1" value="">
tu fais
var obj= document.getElementById("champ1"); var valeurChamp=obj.value; // ou directement: var valeurChamp=document.getElementById("champ1").value;
et de plus inner.HTML permet d'écrire dans l'objet et pas de le selctionner comme tu l'as fait
attention pour ecrire dans un div on utilise inner.HTML
pour ecrire dans un input on utilises .value
ex:
pour lire: var valeurChamp=document.getElementById("champ1").value;
pour ecrire:
document.getElementById("champ1").value="Bonjour";
Merci je comprends mieux comment faire maintenant.
J'ai une dernière question pour appliquer cette méthode a mon problème :
Est-il possible de mettre une variable dans "document.form.champ.value" ?
En fait j'ai plusieurs formulaires générés dynamiquement qui ont les mêmes champs, comment faire pour qu'une fonction puisse accéder au même champs des différents formulaire avec une seule variable d'entrée ?
Evidemment :
check(formid) {
return document.form+formid+.champ.value
}
ne fonctionne pas !
J'ai une dernière question pour appliquer cette méthode a mon problème :
Est-il possible de mettre une variable dans "document.form.champ.value" ?
En fait j'ai plusieurs formulaires générés dynamiquement qui ont les mêmes champs, comment faire pour qu'une fonction puisse accéder au même champs des différents formulaire avec une seule variable d'entrée ?
Evidemment :
check(formid) {
return document.form+formid+.champ.value
}
ne fonctionne pas !
C'est bon j'ai trouvé, merci a toi Alain.
C'est pas bien j'ai fais un multipost sur un autre forum !
La solution est ici : https://openclassrooms.com/forum/sujet/getelementbyid-imbriques-27935 :)
C'est pas bien j'ai fais un multipost sur un autre forum !
La solution est ici : https://openclassrooms.com/forum/sujet/getelementbyid-imbriques-27935 :)
C'est vraiment la ligne
var valeurChamp = cHTML.getElementById("champ").value;
qui plante, et même si cHTML est en innerHTML ou pas...