Quote:
Je definis plusieurs form sous forme de variable.
Je definis un div ne contenant rien
Suivant le choix d'options, je veux que la forme en consequence s'affiche
dans le div en question.
J'arrive a faire ca avec une variable text.. le texte s'affiche dans mon DIV.
J'arrive a faire afficher la form avec document.write(form).
J'arrive a afficher le contenu de la variable form dans une fenetre d'alerte.
Mais l'affichage de la forme dans le DIV me retourne "null"
Y a-t-il une astuce pour que ma forme s'affiche dans mon div? |
Bonjour,
Je suis désolé, mais votre question est peu claire et la réponse n'en
sera que plus vague.
Une question-remarque qui me vient à l'esprit est : qu'appelez vous un
objet "form sous forme de variable" ?
- Est-ce un objet form généré à partir du DOM ? - var formVar =
document.createElement("FORM")
- Un objet form caché dans la page ? - var formVar =
document.getElementById("form_1")
- ou alors, est-ce la forme absolument affreuse (de nos jours, avec les
navigateurs modernes) documet.write("<FORM>...</FORM>") ?
Dans le premier cas, il est assez facile de faire afficher l'élément
'form' dans un élément 'div'. Pour celà, il faut identifier le noeud de
l'élément 'div', en passant par les fonctions du DOM et d'offrir
l'élément 'form' comme enfant :
document.getElementById( 'div_1' ).appendChild( formVar );
pour cacher l'élément form dans ce cas, vous pouvez détruire le noeud
enfant ou alors cacher l'affichage :
- destruire : formVar.parentNode.removeChild( formVar );
- cacher : formVar.style.display = 'none';
Dans le deuxième cas, des astuces faciles sont utilisables et sont
basées sur l'exemple de code HTML suivant :
<div id='div_1'>
<form id='form_1' style='display: none' [...]>
[...]
</form>
<form id='form_2' style='display: none' [...]>
[...]
</form>
</div>
Au chargement de la page, aucun élément 'form' n'est affiché. Il sera
possible par JavaScript d'afficher et cacher chacun des élément comme
suit :
cacher : document.getElementById( 'form_1').style.display = 'none';
afficher : document.getElementById( 'form_1' ).style.display = 'block';
Dans le troisième cas, je vous conseillerai de réécrire ce bout de code :
c'est très lourd et peu clair pour le développement. De plus, cette
solution offre très peu de possibilité de dynamisme de la page et ne
présente plus aucun intérêt dans les navigateurs modernes supportant le
DOM et permettant de créer, cacher et supprimer des éléments.
Julien
--
Jul... réapparru comme par enchantement