2009-09-17 5 views
2

J'ai une forme très basique à http://www.happyholidaylites.com/contact.html et il fonctionne très bien. Lorsque vous soumettez le formulaire, l'utilisateur est amené à index.html sans message indiquant que le formulaire a été envoyé. Je cherche à lancer une alerte qui dit, "votre formulaire a été soumis" avec un bouton x. Mon code ressemble à ceci:Merci d'alerte sur la forme soumission

 <form method="post" id="myForm" action="dynaform.php"> 

     <input type='hidden' name='rec_mailto' value='[email protected]'> 
     <input type='hidden' name='rec_subject' value='New Contact Form'> 
     <input type='hidden' name='rec_thanks' value='index.html'> 

ainsi de suite et ainsi de suite .....

La dernière ligne est ce que dit la forme ce qu'il faut faire après le bouton d'envoi est pressé, mais je ne veux pas qu'il pointe le navigateur vers l'index, plutôt que je veux un popup javascript avec un message de succès. Des idées?

Répondre

6

Pourquoi pas un onSubmit simple?

<form method="post" id="myForm" action="dynaform.php" onSubmit="alert('Thank you for your feedback.');" > 
+5

Wheres le gurantee à ce moment-là que la forme a effectivement été soumis? – roryf

+2

Cela ne devrait vraiment pas être marqué comme la réponse, comme Rory état il n'y a pas de garantie que le formulaire a été soumis. La méthode onSubmit permet de pré-valider les données du formulaire et d'annuler si nécessaire. 1 – James

+0

Je comprends, mais pour mes besoins, c'est exactement ce que je voulais. J'avais besoin d'une solution de contournement. Je n'ai pas besoin d'une solution qui fonctionnerait avec le formulaire. Plutôt juste une alerte, que le formulaire soit soumis ou non. – JCHASE11

0

Sons comme votre script PHP gère la soumission du formulaire en traitant l'entrée et la redirection du navigateur à la valeur dans le champ rec_thanks.

Vous pouvez ajouter quelque chose comme onsubmit="YourJavaScriptFunction()" à la balise de formulaire pour ajouter un comportement côté client avant de soumettre effectivement la forme. Dans cette fonction, vous pouvez effectuer la validation, utiliser alert('Thank You!'), etc.

+0

Jusqu'à ce que le formulaire soit traité, aucun moyen de le savoir n'a été réellement soumis ... – roryf

4

Pour être honnête, vous êtes mieux rediriger vers une autre page afin d'éviter à l'utilisateur de soumettre à nouveau la page sur une actualisation. Jetez un oeil à Post/Redirect/Get Pattern.

popups peuvent être extrêmement gênant sur les sites Web. Vous devriez créer une page appelée "thank-you.html" que vous pouvez rediriger l'utilisateur en cas de soumission réussie qui a accès aux options de navigation du site ou même faire une redirection vers la page du formulaire après quelques secondes .

2

Au lieu de rediriger index.html, rediriger vers merci.html; vos utilisateurs vous remercieront vous parce que tout le monde déteste les popups!

Questions connexes