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);
}