[Résolu] Problème avec InnerHTML
Bonjour à tous !
J'essaie de réaliser une sorte d'interface assez dynamique en qui permet d'afficher et de masquer des champs de formulaire à la volée. Jusqu'ici j'y arrive, tout va bien : je clique sur un lien, ça affiche mon champ, je reclique, et ça retire ce champ.
Le problème, c'est que j'arrive à afficher le formulaire et à le masquer une fois, mais si je veux le réafficher une nouvelle fois, là je n'y arrive plus. En gros, il affiche et cache le formulaire qu'une seule fois. Je n'arrive pas à trouver où est mon erreur. J'utilise la fonction Javascript innerHTML.
J'utilise ces deux fonctions Javascript là :
Code:
1 2 3 4 5
|
function afficheChampUpload(whatdiv)
{
document.getElementById(""+whatdiv+"").innerHTML="<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"10000000\">\n<input type=\"file\" name=\""+whatdiv+"\" size=\"30\" onChange=\"setModifie();\"><a href=\"#\" onClick=\"afficheTextUpload('"+whatdiv+"');\">Retirer l'image</a>\n";
} |
Code:
1 2 3 4 5
|
function afficheTextUpload(whatdiv)
{
document.getElementById(""+whatdiv+"").innerHTML="<a href=\"#\" onClick=\"afficheChampUpload("+whatdiv+");\">Insérer une image</a>";
} |
Lors que je fais afficher la valeur de ma variable "whatdiv" par un alert par exemple, la première fois pour chaque fonction, j'ai les bonnes valeurs (c'est à dire une chaine de caractère représentant l'id de ma balise <div id="xxxx"></div>, mais la seconde fois pour la fonction (c'est à dire quand je fait par exemple afficher->cacher->afficher, j'ai l'affichage "[object HTMLDivElement]" au lieu de la valeur de ma variable. On dirait qu'au bout de deux fois, la valeur de ma variable se perd...
Quelqu'un aurait une idée ???
Merci d'avance !!!
Re: Problème avec InnerHTML
Citation:
Envoyé par rat dgout
document.getElementById(""+whatdiv+"").innerHTML="<a href=\"#\" onClick=\"afficheChampUpload("+whatdiv+");\">Insérer une image</a>";
Code:
1 2
|
document.getElementById(""+whatdiv+"").innerHTML="<a href=\"#\" onClick=\"afficheChampUpload(' "+whatdiv+" ');\">Insérer une image</a>"; |
Faut rajouter des guillements.
Ceci dit, pour afficher/cacher des elements, je prefere le style:
display : none / block
Ca permet d'afficher/cacher des elements, sans changer leur code HTML...
PS: @modos: comment on fiat de la mise en forme (b ou color) dans des balises code?