Page 1 sur 1

problème settimeout

Posté : 13 déc. 2006, 12:50
par tomypunk
voila je commence tout juste en java script mais j'ai un problème avec setTimeout.

Voila ce que je fais:

Code : Tout sélectionner

function test(id){ var ch=document.getElementById(id).innerHTML; document.getElementById(id).innerHTML="<img src=\"progress_loading.gif\"> Enregistrement de l'élément."; setTimeout('test2('+ch+')',4000); } function test2(){ document.getElementById("form").innerHTML=ch; }
et rien ne se passe au bout de 4 seconde a par l'erreur XML tag name mismatch (expected input) qui apparait dans la console javascript

Merci d'avance pour votre aide
THOMAS

Posté : 13 déc. 2006, 13:13
par Ryle
Dans la déclaration de ta fonction test2, il te faut spécifier qu'elle accepte un paramètre pour pouvoir le récupérer et l'utiliser :

Code : Tout sélectionner

function test2(ch){ document.getElementById("form").innerHTML=ch; }
:)

Posté : 13 déc. 2006, 13:50
par tomypunk
Dans la déclaration de ta fonction test2, il te faut spécifier qu'elle accepte un paramètre pour pouvoir le récupérer et l'utiliser :

Code : Tout sélectionner

function test2(ch){ document.getElementById("form").innerHTML=ch; }
:)
ouai mais meme en changant ça j'ai tjs la meme erreur :s

Posté : 13 déc. 2006, 14:10
par Ryle
Et dans ton document, tu as bien un élément dont l'identifiant est id="form" ?

Posté : 13 déc. 2006, 22:33
par tomypunk
oui oui
voila comment est structuré le HTML :

Code : Tout sélectionner

<html> <head> <script language="javascript" src="fonction.js"></script> </head> <body> <div id="form"><form> Nom: <input name="nom"> Commentaire : <textarea name="txt_comm"></textarea> <input type="button" value="Enregistrer" onClick="test('form')"> </form> </div> </body> </html>

Posté : 14 déc. 2006, 01:30
par Ajoloca
Bonsoir,

J'ai pas testé, mais ceci devrait fonctionner (si j'ai bien compris ce que tu cherches à faire)
Fichier HTML
<html>
<head>
<script type="text/JavaScript" src="fonction.js"></script>
</head>
<body onload="chargeCodeForm()">
<div id="form"><form name="my_form" action="" method="">
Nom: <input type="text" name="nom">
Commentaire : <textarea name="txt_comm"></textarea>
<input type="button" value="Enregistrer" onClick="test('form')">
</form>
</div>
</body>
</html>
Le fichier JS

Code : Tout sélectionner

var ch; function chargeCodeForm(){ ch = document.getElementById('form').innerHTML; } function test(id){ document.getElementById(id).innerHTML='<img src="progress_loading.gif" alt="" /> Enregistrement de l\'élément.!'; setTimeout('test2()',4000); } function test2(){ document.getElementById('form').innerHTML=ch; }
EDIT : Tu peux simplifier ton code JS comme ceci

Code : Tout sélectionner

var ch; function chargeCodeForm(){ ch = document.getElementById('form').innerHTML; } function test(id){ document.getElementById(id).innerHTML='<img src="progress_loading.gif" alt="" /> Enregistrement de l\'élément.!'; setTimeout('document.getElementById("form").innerHTML=ch;',4000); }