Rechercher : dans
Par :

Javascript, getElementById() imbriqués

Dernière réponse le 28 jan 2009 à 12:49:31 samyghan, le 28 jan 2009 à 11:00:28 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 3.0.5

Meilleures réponses pour « Javascript, getElementById() imbriqués » dans :
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
[mythe] JavaScript c'est la même chose que Java Voirmythe Javascript est le même langage que Java Réalité FAUX Explications Ces deux langages existent bien, et ce sont tous les deux des langages de programmation (moins poussée pour le JavaScript), mais ce ne sont pas les mêmes...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...

1

ddez, le 28 jan 2009 à 11:21:29

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

Répondre à ddez

2

samyghan, le 28 jan 2009 à 11:34:35

Non ça ne marche toujours pas, je comprend pas.

C'est vraiment la ligne
var valeurChamp = cHTML.getElementById("champ").value;
qui plante, et même si cHTML est en innerHTML ou pas...

Répondre à samyghan

3

Alain_42, le 28 jan 2009 à 11:43:58

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";

Répondre à Alain_42

4

samyghan, le 28 jan 2009 à 12:18:22

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 !

Répondre à samyghan

5

 samyghan, le 28 jan 2009 à 12:49:31

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 : http://www.siteduzero.com/forum-83-364456-p1-getelementbyid-­imbriques.html :)

Répondre à samyghan
Collection CommentÇaMarche.net