Bonjour à tous,
Tout d'abord je tiens à préciser que je ne suis pas un crack en JS mais que j'ai cherché partout une solution sans succès, j'espère que vous pourrez m'aider.
Je m'explique. J'ai sur mon site un formulaire tout ce qu'il y a de plus classique. La page de traitement est externe à mon site et je n'y ai pas accès.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <form method="post" id="formulaire" name="formulaire" action="http://www.siteexterne.com/pagedetraitement" onsubmit="return validForm();return false;" target="_blank">
Ce que j'aimerais, et que j'ai réussi à faire fonctionné sour FF, IE (oui même IE); mais pas Chrome est la chose suivante :
Lorsque le formulaire est posté depuis "monsite.com/formulaire"
► un nouvel onglet s'ouvre via le target="_blank" contenant la page de traitement externe "siteexterne.com/pagedetraitement";
► simultanément ma page "monsite.com/formulaire" se recharge pour afficher "monsite.com/merci.html"
Le script de vérification des données du formulaire appelé dans le onsubmit est le suivant, c'est ici que je donne l'instruction de recharger sur "monsite.com/merci.html"
Donc en l'état ça marche sous FF et IE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 var REG_MAIL = /^[\w-\.]{2,}@[\w-]{1,}\./; var REG_PHONE = /^(0)[0-9]{9}\./; var REG_DATE = /^[0-9]{8}\./; function validForm() { if(document.formulaire.firstname.value == "") { alert(firstnameErrorMessage); document.formulaire.firstname.focus(); return false; } ...... if(document.formulaire.description.value == "") { alert(descriptionErrorMessage); document.formulaire.description.focus(); return false; } document.location.href="http://monsite.com/merci/"; return true; }
Par contre sous Chrome :
- la vérification du formulaire est bien effectuée
- la page de traitement s'ouvre
- MAIS la page ou est située le formulaire ne se recharge pas sur "merci".
En fouillant sur internet, j'ai vu qu'il fallait que je mette ce code :
avant mon
Code : Sélectionner tout - Visualiser dans une fenêtre à part window.event.returnValue = false;
En faisant ça, ma page se recharge, mais mon onglet ne s'ouvre plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 document.location.href="http://monsite.com/merci/"; return true;
------------------------------
Bref, peut être y a-t-il une toute autre façon de faire à laquelle je n'ai pas pensé ? Je vous remercie par avance !
Partager