[Javascript] Problème avec InnerHTML

Problème avec InnerHTML [Javascript] - HTML/CSS - Programmation

Marsh Posté le 19-04-2005 à 08:47:05    

Bonjour à tous !  :hello:  
 
J'essaie de réaliser une sorte d'interface assez dynamique 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. function afficheChampUpload(whatdiv)
  2. {
  3. 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";
  4. }


 

Code :
  1. function afficheTextUpload(whatdiv)
  2. {
  3. document.getElementById(""+whatdiv+"" ).innerHTML="<a href=\"#\" onClick=\"afficheChampUpload("+whatdiv+" );\">Ins&eacute;rer une image</a>";
  4. }


 
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...  :pt1cable:  
 
Quelqu'un aurait une idée ???
 
Marchi !!  :hello:


Message édité par rat dgout le 19-04-2005 à 09:46:52
Reply

Marsh Posté le 19-04-2005 à 08:47:05   

Reply

Marsh Posté le 19-04-2005 à 10:05:12    

OK c'est bon, j'ai trouvé grâce à un autre forum, il manquait juste des guillemets en fait.
Le code, pour ceux que ça intéresse est donc :
 

Code :
  1. function afficheChampUpload(whatdiv)
  2. {
  3. 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";
  4. }


 

Code :
  1. function afficheTextUpload(whatdiv)
  2. {
  3. // il manquait des quote ( ' ) dans le onClick=\"afficheChampUpload('......
  4. document.getElementById(""+whatdiv+"" ).innerHTML="<a href=\"#\" onClick=\"afficheChampUpload('"+whatdiv+"');\">Ins&eacute;rer une image</a>";
  5. }


Message édité par rat dgout le 19-04-2005 à 10:05:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed