У меня проблема с кодом, над которым я работаю.Я хочу, чтобы при нажатии кнопки «Отправить» он преобразовывал значение поля адреса в lat / long с помощью геокодера, а затем сохранял значения lat / long в скрытое поле «latLongField».Я также использую Places api для автоматического заполнения поля адреса для пользователей по мере их ввода.
Моя проблема в том, что по какой-то причине, когда моя функция onclick запускается, вызванная кнопкой отправки, она пропускает функцию геокода ... Я думаю, что это как-то связано с обратным вызовом в моих тегах, но яне могу понять, как это сделать.
Мой JavaScript:
var addLong;
var addLat;
function initAutocomplete() {
var input = document.getElementById('address');
new google.maps.places.Autocomplete(input);
}
function addValue(){
var address = document.getElementById('address').value;
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
addLat = results[0].geometry.location.lat()
addLong = results[0].geometry.location.lng()
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: addLat, lng: addLong},
zoom: 18
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
document.getElementById('latLongField').value = addLat + "," + addLong;
}
Мой тег HTML:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBKoF52cTEZ00niUdjauGtA5UlW8&libraries=places&callback=initAutocomplete"></script>
Доступ к моим элементам HTML:
<input type="hidden" id="latLongField"value='hello'>
<button type="submit" class="btn btn-primary px-4" onclick="addValue()">Submit</button>