Bonjour,

j'ai un formulaire avec un bouton submit. J'ai mis onclick="foo(event, this);" sur le bouton submit pour la soumission du formulaire.

Je voudrais soumettre le formulaire lorsque que ajax a donné la réponse de type success.

Voici le code :

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<form id="form_a" action="destination.html">
 
  <input type="submit" id="submit_button_1" value="Submit button 1" onclick="foo(event, this);">
 
</form> 
 
<script type="text/javascript">
 
function foo(event, this_element)
{
	event = event || window.event;
	event_target = event.target || event.srcElement;
 
	//Empêche la soumission immédiate du formulaire car on veut soumettre le formulaire uniquement quand la réponse d'Ajax est de type success : 
	event.preventDefault();
 
	//On récupère le bouton submit cliqué :
	if(this_element.id == "submit_button_1")
	{	
			//On envoye la requête par Ajax :
 
			var xhr = new XMLHttpRequest();
 
			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4 && xhr.status == 200)
				{
					//On récupère le formulaire :
					form_a = document.getElementById("form_a");
 
					//On soumet le formulaire 3 secondes plus tard : 
					setTimeout('form_a.submit();', 3000);
				}	 
			} 
 
			//Envoie de la requête ajax au serveur :
			xhr.open("POST", "server.php", false);
			xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
			xhr.send("");
	}
}
 
</script>
Ce code ne marche pas sur Safari. Avez-vous une solution pour que ce code marche sur safari ?

Merci d'avance, cordialement.