Bonsoir,

Je fait une requête Ajax pour vérifier un formulaire. Dans ce formulaire je peux supprimer des éléments. Quand je supprime, j'ai mis en place une confirmation. Le problème c'est si je clique sur annuler dans la confirm la requête s'exécute est supprime mon élément. Est-ce que c'est possible d'arrêté l'asynchrone d' Ajax.

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
var xmlHttp = null;
 
function getXMLHttpRequest(url, id, pressbutton) {
	try {
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
 
 
 
 
 
	url = url +"?"+new Date().getTime();
	xmlHttp.open("POST",url,true);
	isBusy = true;
 
	xmlHttp.onreadystatechange = function() { processXmlHttpChange(id, pressbutton); };
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Cache-Control","no-cache");
 
 
 
 
	xmlHttp.send('task='+pressbutton+'&cocher='+tabCheckbox(id));
 
 
}
 
function processXmlHttpChange(id, pressbutton) {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {	
			var verification = verif(id, pressbutton, xmlHttp.responseText);
 
		}
		else {
			var erreur  = document.getElementById("error").getElementsByTagName('p');
			if (erreur.length == 0){
				var p = Builder.node('p',{id:'erreur'}, "Un probléme est survenue lors du transfert");
				document.getElementById("error").appendChild(p);
			}else{
				if(document.getElementById("erreur").innerHTML != 'Un probléme est survenue lors du transfert'){	
					document.getElementById("erreur").innerHTML = 'Un probléme est survenue lors du transfert';
				}else{
					return true;
				}
			}
 
 
		}
	}
}

La fonction de vérification de formulaire
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
function verif(Id, pressbutton, phraseErreur){
 
	var checkboxes = document.getElementById(Id).getElementsByTagName('input');
	document.adminForm.task.value=pressbutton;
	var ErreurPhrase = phraseErreur;
	result=false;
	for (var i=0;i<checkboxes.length;i++)
	{
		if(checkboxes[i].checked){
			result=true;	
			break;
		}
	}
 
	if(result == true){
 
 
		if (document.adminForm.task.value == "supprimer"){
 
			confirmation = confirm("Voulez - vous vraiment suppprimer ?");		
			if (confirmation){
					if (ErreurPhrase == " "){	
						document.adminForm.submit();
						return true;
					}else{
						var erreur  = document.getElementById("error").getElementsByTagName('p');
						if (erreur != null){
 
							if (erreur.length == 0){
 
								var p = Builder.node('p',{id:'erreur'}, ErreurPhrase);
								document.getElementById("error").appendChild(p);
								Effect.BlindDown("error");
								return true
							}else{			
								if(document.getElementById("erreur").innerHTML == ErreurPhrase){	
									return true;
								}else{
									document.getElementById("erreur").innerHTML = ErreurPhrase;	
									return true;
								}
							}
						}
 
					}
			}else{
				document.adminForm.reset();	
				return false;
			}
 
		}
	}
 
	if (result == false){
		var erreur  = document.getElementById("error").getElementsByTagName('p');
		if (erreur != null){
			if (erreur.length == 0){
				var p = Builder.node('p',{id:'erreur'}, ErreurPhrase);
				document.getElementById("error").appendChild(p);
				Effect.BlindDown("error");
				return true
			}else{			
				if(document.getElementById("erreur").innerHTML == ErreurPhrase){	
					return true;
				}else{
					document.getElementById("erreur").innerHTML = ErreurPhrase;	
				}
			}
		}
	}
 
}