Это код, с которым я работаю:
var GeoCoded = {done: false};
$(document).ready(function(){
console.log('ready!');
autosuggest();
console.log($('#myform input[type="submit"]'));
$('#myform').on('submit',function(e){
if(GeoCoded.done)
return true;
e.preventDefault();
console.log('submit stopped');
var geocoder = new google.maps.Geocoder();
var address = document.getElementById('location').value;
$('#myform input[type="submit"]').attr('disabled',true);
geocoder.geocode({
'address': address
},
function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latLng = results[0].geometry.location;
$('#lat').val(results[0].geometry.location.lat());
$('#lng').val(results[0].geometry.location.lng());
//if you only want to submit in the event of successful geocoding, you can only trigger submission here.
GeoCoded.done = true;
$('#myform').submit();
} else {
console.log("Geocode was not successful for the following reason: " + status);
//enable the submit button
$('#myform input[type="submit"]').attr('disabled',false);
}
});
});
});
Это работает так, как я хочу, НО я хотел завершить геокодирование, когда кто-то нажимает на автозаполнение. Таким образом, когда они что-то вводят и нажимают на предложение из списка автозаполнения, он фактически завершает вызов геокодирования, когда нажимает на результат.
Если бы кто-нибудь мог сказать мне, возможно ли это, я был бы очень признателен, потому что я не смог понять, как это сделать сам.