Bonjour,

Après pas mal de recherche infructueuse je me tourne vers vous, vous êtes mon dernier espoir

Je vous explique mon soucis, je développe un formulaire qui comporte uniquement 2 champs saisie et un bouton submit qui me permet de calculer un itinéraire (via la librairie mappy).

Je souhaiterai réaliser un système équivalent à mappy.fr lors du calcule d'un itinéraire. C'est à dire que l'user complète les champs et clique sur le bouton. Mappy propose, par champ, une liste de destination que l'user doit sélectionner pour que mappy calcule l'itinéraire.

Pour le moment tout mon script s'exécute correctement sans effectuer de pause, c'est à dire que j'affiche une liste de proposition sous mes 2 champs mais l'itinéraire est calculé. Je suis obligé de re-cliqué sur le bouton submit pour que mon script prenne en compte les changement.

L'idée est donc de créer une "pause" après que l'utilisateur ai cliqué sur le bouton afin qu'il puisse sélectionner la destination qu'il souhaite dans chacun des 2 champs puis de calculer l'itinéraire.

Il faut savoir que la liste de proposition et générer dynamiquement par ces 2 fonction:
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
function alerte(sId ,champ, results, i){
                //Affectation de la nouvelle valeur dans le champ
		document.getElementById(champ).value = results;
                //Suppression des propositions
		delete_li(sId);
                //On place l'adresse choisie dans un array
		tab[i] = results;
}
 
 
function add_li(sId, results, champ, i) {
	var oUl = document.getElementById(sId); // récupération de la liste
	var iLength = oUl.getElementsByTagName("li").length; // longueur de la liste (nombre d'items)
	var oLi = document.createElement("li") // on cré un nouveau noeud item de liste
        //Création d'un événement sur le li crée
	oLi.setAttribute('onClick', 'alerte("'+sId+'","'+champ+'","'+results+'", "'+i+'")');
        //Affectation d'une class pour le css.
	var math = Math.round(iLength/2);
	if(iLength == 0 || iLength/2 == math){
		oLi.setAttribute('class', 'ac_impair');		
	}
	else{
		oLi.setAttribute('class', 'ac_pair');
	}	
	var oText = document.createTextNode(results); // on créer un noeud texte
	oLi.appendChild(oText); // on attache le noeud texte au noeud item de liste
	oUl.appendChild(oLi); // on attache le noeud item de liste au noeud liste
	return oLi;
}
 
 
 
function search_Adresse(champ, divAffichage, j) {
        //récupération de l'adresse dans le champ
	var adresse = document.getElementById('Way'+champ).value;
	var oLi;
        //Création d'un nouvel objet geocoder via l'api mappy
	var geo = new Mappy.api.geolocation.Geocoder();
        //Création d'une liste de proposition sous le champ "champ"
	geo.geocode(adresse, function(results){
								if(results.length != 1)
								{
									for(var i = 0;i <= results.length + 1; i++)
									{
										add_li(divAffichage, results[i].Placemark.name, 'Way'+champ, j);										
									}				
								}
								}, 
								function(e){
									alert(e);
								});
 
}
j'éspère avoir était clair sur mon petit problème et que vous saurez m'aider.