Page 1 sur 2

Envoyer un formulaire automatiquement aprés x secondes

Posté : 14 mars 2008, 12:50
par mike025
Bonjour,

Voilà je ne connais casiment rien en javascript, mais j'aimerais que quelqu'un m'aide pour faire une fonction que quand un utilisateur appuie sur le bouton submit, ba que le formulaire soit envoyé aprés x secondes

merci d'avance

Posté : 14 mars 2008, 13:08
par Ryle
Du côté des événement tu peux chercher du côté de onSubmit ou onClick selon le type de boutons.
Côté délai, regarde comment fonctionne la méthode setTimeout() de javascript :)

Posté : 14 mars 2008, 14:36
par mike025
oki merci, je vais essayé mais je ni connais trop rien en javascript, merci d'avoir répondu, je vous dit si j'ai réussi ...

Posté : 14 mars 2008, 14:59
par mike025
voilà ce que j'ai fais :

dans les en-tete j'ai mis sa :

Code : Tout sélectionner

<SCRIPT> function Attendre(Duree) { string="Affiche("+Duree+");"; a = setTimeout(string,Duree); } function Affiche(Duree) { alert(Duree/1000+" seconds se sont écoulées"); function CheckInput() { for(i=0; i<document.forms[0].elements.length; ++i) if(document.forms[0].elements[i].value == "") { alert("Tous les champs n'ont pas été remplis!"); document.forms[0].elements[i].focus(); return false; } return true; } } </SCRIPT> </head>
et dans le bouton submit, j'ai mis :

Code : Tout sélectionner

<input type="submit" value="Valider" onClick="Attendre(10000);">
Mais quand on clique sur envoyer, sa change rien, comme si j'avais rien mis, merci de m'aider

Posté : 14 mars 2008, 16:55
par MIKE025
je rappelle que je ny connais rien en javascript ...

Posté : 14 mars 2008, 18:36
par Nagol
tu déclares une fonction dans une fonction ce qui doit provoquer une erreur (à juste titre)

la déclaration de la fonction en elle même n'a aucune action il faut la voir comme la création d'un bloc de code relié à un nom (de fonction) et éventuellement à des arguments (de fonctions)

ainsi

function truc(machin) {

alert(machin);

}

ne fait rien.

mais

truc('bidule');

va effectivement afficher une boite de dialogue avec écrit dedans "bidule".

dans ton code il faut sortir la déclaration de la fonction CheckInput de celle de Affiche

Posté : 14 mars 2008, 22:20
par mike205
ok merci je vais testé

Posté : 14 mars 2008, 22:22
par mike025
edit : arf je sais pas trop comment faire, mais je te remercie deja d'avoir répondu, mais si tu pouvez m'aidez a sortir la déclaration de la fonction CheckInput de celle de Affiche s'il te plait ?

Posté : 14 mars 2008, 23:20
par Invité
reEdfit : voilà ce que jai mis :

Code : Tout sélectionner

function Attendre(Duree) { a = setTimeout(string,Duree); } function CheckInput() { for(i=0; i<document.forms[0].elements.length; ++i) if(document.forms[0].elements[i].value == "") { alert("Tous les champs n'ont pas été remplis!"); document.forms[0].elements[i].focus(); return false; } return true; }

et :

Code : Tout sélectionner

<form method="POST" action="http://serveur.4.free.fr/ogame/robot/r0b0t.php" onSubmit="Attendre(10000)">

Posté : 14 mars 2008, 23:21
par Invité
mais sa fonctionne pas

Posté : 15 mars 2008, 23:50
par Aureusms
Pourquoi string dans

Code : Tout sélectionner

a = setTimeout(string,Duree);
et pas ?
a = setTimeout(CheckInput,Duree); 

Posté : 15 mars 2008, 23:56
par Invité
ok merci je vais essayé

Posté : 16 mars 2008, 00:26
par mike0025
voila j'ai testé et sa fonctionne pas, si vous trouvez pourquoi ? merci de continué a m'aider .

Posté : 16 mars 2008, 00:40
par Mike025
enféte sa marche quand quand je fait validé, et que je fait précédent, la je réintérit sur la page du formulaire et sa l'envoie au bout de 10 secondes, donc j'ai un peu réussi, mais faudrait juste que sa le fasse quand on arrive sur la page normalement.

Voilà deja merci, j'ai bcp avancé grace a vous donc mon projet.
Je veux juste savoir comment faire pour que sa le fasse des qu'on clique sur submit et pas que quand on clique dessus sa l'envoie et aprés qu'il faut faire precedent et que la sa l'envoie au bout de 10 secondes, dsl si j'en demande trop

Merci d'avance

Posté : 16 mars 2008, 00:48
par Invité
c pas que sa marche, mais sa me met une alerte, "Tous les champs n'ont pas été remplis!"