Attendre le retour de Google Maps API avant de continuer le script
Attendre le retour de Google Maps API avant de continuer le script - HTML/CSS - Programmation
MarshPosté le 07-01-2009 à 11:47:58
Bonjour
Je voudrais valider un formulaire, je le fait donc sur un onsubmit.
Dans la vérification, je demande à GoogleMaps de me calculer la distance entre 2 points, cela fonctionne parfaitement, sauf que ça prend un peu de temps. Mon script s'exécute et trouve une valeur vide pour la distance, puisque le temps que Google renvoi la valeur, mon script, lui, continu de s'exécuter.
Comment es-ce que je peux faire pour qu'il attende une valeur de retour de Google avant de vérifier si la distance est supérieure à 0 ?
Marsh Posté le 07-01-2009 à 11:47:58
Bonjour
Je voudrais valider un formulaire, je le fait donc sur un onsubmit.
Dans la vérification, je demande à GoogleMaps de me calculer la distance entre 2 points, cela fonctionne parfaitement, sauf que ça prend un peu de temps.
Mon script s'exécute et trouve une valeur vide pour la distance, puisque le temps que Google renvoi la valeur, mon script, lui, continu de s'exécuter.
Comment es-ce que je peux faire pour qu'il attende une valeur de retour de Google avant de vérifier si la distance est supérieure à 0 ?
exemple de mon script :
function valider(forfait){
var err = '';
var msg = '';
directions = new GDirections(map,directionsPanel);
directions.load("from: " + loc_depart + " " + vil_depart + " " + zip_depart + " to: " + loc_arrivee + " " + vil_arrivee + " " + zip_arrivee + "" );
GEvent.addListener(directions,"load", function() {
// Indique la distance sous cette forme : 157147
var mesure = directions.getDistance().meters;
document.getElementById('existances').value = mesure;
});
if (document.getElementById('existances').value == '') { var err = err + '- Adresse(s) invalide(s)\r\n'; }
// Affichage du message d'erreur ou confirmation
if (err != '')
{
msg = 'Des erreurs ont été relevées lors de votre saisie : \r\n';
msg += err;
alert(msg);
return false;
}
else
{
return true;
}
}
Merci de votre aide