问题
In my web page base template, I have links for JQuery, Google Places API, plugin for autocomplete and JS code to to call the functionality.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDaa7NZzS-SE4JW3J-7TaA1v1Y5aWUTiyc&libraries=places"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/geocomplete/1.7.0/jquery.geocomplete.js"></script>
<script>
$(function(){
$("#searchBoxGlow").geocomplete()
});
</script>
Finally I have a search field that I want to autocomplete city names
<input type="text" class="form-control input-lg" id="searchBoxGlow" name="city" placeholder="Search Cities">
However it freezes and shows an exclamation mark as in this screenshot:
回答1:
This worked for me.
<input type="text" id="searchplace" />
<input type="hidden" id="latitude" name="latitude"/>
<input type="hidden" id="longitude" name="longitude"/>
and within that html part, I added this:
<script type="text/javascript">
function initialize() {
var searchBox = document.getElementById('searchplace');
var autocomplete = new google.maps.places.Autocomplete(searchBox);
var latitude;
var longitude;
google.maps.event.addListener(autocomplete, 'place_changed', function () {
var place = autocomplete.getPlace();
latitude = place.geometry.location.lat();
longitude = place.geometry.location.lng();
document.getElementById('latitude').value = place.geometry.location.lat();
document.getElementById('longitude').value = place.geometry.location.lng();
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
来源:https://stackoverflow.com/questions/37261023/why-does-my-autocomplete-search-fiels-freeze-when-trying-to-pull-cities-from-goo