Nazario Posté 28 Mai 2005 Posté 28 Mai 2005 (modifié) Salut, je souhaite faire clignoter les bordures d'un champ non remplis dans un formulaire. Il se trouve que le SetTimeout soit mauvais puisqu'il faut que je reclique sur le boutton pour que la couleur change et pour que l'action reprends. Le code est le suivant: function check_forum() { if(!document.forum.sujet.value) { setTimeout(clign(document.forum.sujet),1000); }}var i=0;function clign(eh) { if(i < 5) { i++; if((i == 1)||(i == 3)||(i == 5)) { eh.style.border='solid 1px #000000'; } if((i == 2)||(i == 4)) { eh.style.border='solid 1px #C0C0C0'; } }} L'action débute quand je clique sur le boutton (onclick='check_forum();'). Ma question est la suivante: Comment éviter de rappuyez sur le boutton pour que la 'function' continue à s'éxecuter (1 fois par seconde, 5 fois) ? Merci, à bientôt. Modifié 28 Mai 2005 par Nazario
Dnegel666 Posté 4 Juillet 2005 Posté 4 Juillet 2005 (modifié) Slt, c'est parce que le setTimeout n'exécute qu'une seule fois la function, il faudrait mettre: var i=0;function check_forum() { if(!document.forum.sujet.value) { clign(document.forum.sujet,i); }}function clign(eh,i) { if(i < 5) { i++; if((i == 1)||(i == 3)||(i == 5)) { eh.style.border='solid 1px #000000'; } if((i == 2)||(i == 4)) { eh.style.border='solid 1px #C0C0C0'; } setTimeout(clign(document.forum.sujet,i),1000); }} Modifié 4 Juillet 2005 par Dnegel666
AntoineViau Posté 4 Juillet 2005 Posté 4 Juillet 2005 Ou alors utiliser setInterval qui va appeler de façon régulière une fonction. mon_timer = setInterval("mafonction()",1000); Va appeller mafonction() toutes les secondes. Pour l'arrêter : clearInterval(mon_timer); Et vala... Antoine
demo Posté 13 Juillet 2005 Posté 13 Juillet 2005 Il faut utiliser setInterval pour lancer une fonction à interval fixe. Et ne pas oublier de libérer l'identifiant du setInterval SeTimeOUt permet juste de lancer une fonction en différée, au bout d'une certain nb de millisecondes.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant