Ma fonction javascript getLatLng fonctionne très bien lorsqu'elle est appelée par window.onload. Mais quand j'utilise le gestionnaire pour l'appeler, je reçois une position (NaN, NaN) du géocodeur.Le géocodage renvoie (NaN, Nan) sur le deuxième appel
Pourquoi cela ne fonctionne-t-il pas lorsque je clique sur le bouton "Soumettre", mais fonctionne très bien avec window.onload?
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=MYSECRETKEYHERE&sensor=false">
</script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<form id="update_info" method="post" action="{{upload_url}}" enctyp="multipart/form-data">
<input name="address" id="address" type="text" value="100 W Main St Lehi, UT"/>
<input name="latlng" id = "latlng" type="text" value=""/>
<input name="update_reseller_button" id="update_reseller_button" type="submit">
</form>
<script>
function getLatLng()
{
var geocoder = new google.maps.Geocoder();
var theaddress = document.getElementById('address').value;
var position = new google.maps.LatLng();
geocoder.geocode({'address': theaddress}, function(results, status
)
{
position = results[0].geometry.location;
document.getElementById('latlng').value = position.toString();
});
return position;
}
$('#update_info').submit(function()
{
alert('The Position is: ' + getLatLng().toString());
return true;
});
window.onload = getLatLng();
</script>
EDIT: Correction d'une faute dans le gestionnaire pointant vers le mauvais formulaire
EDIT 2: fixe plus les fautes de frappe
EDIT 3: Changement si alerte montre la valeur de la position
Qu'est-ce que est l'élément ' adresse'? Il doit contenir la valeur à transmettre au géocodeur, mais n'apparaît nulle part. –
@AndrewLeach Désolé, je viens de le changer afin qu'il fonctionne correctement maintenant. Si vous mettez le texte dans un fichier html, changez la clé d'api à votre propre, cela devrait fonctionner et afficher la valeur de la position. Merci! – ChickenFur