现在,当我点击该位置时,自动完成框工作正常,但是当我按下时,突出显示我要去的位置,然后按回车键,它只会返回到地图的起始位置。有什么见解吗?我在initialize()中调用此函数。我迷失了我可能做错的事。这只是一个google api bug吗?如果是这样,有关如何解决它的任何见解?
function setupAutoComplete() {
var defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-90, -180),
new google.maps.LatLng(90, 180));
var input = document.getElementById('placeSearch');
var options = {
bounds: defaultBounds,
types: ['(regions)']
};
autocomplete = new google.maps.places.Autocomplete(input, options);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
alert('hi');
removeAllOverlays();
var place = autocomplete.getPlace();
var mapCenter = place.geometry.location;
var colLat = mapCenter.lat() - (halfPoints)*latSeparation;
var colLng = mapCenter.lng() - (halfPoints)*lngSeparation;
var tempStart = new google.maps.LatLng(colLat, colLng);
map.setCenter(mapCenter);
pointArray[0][0] = tempStart;
reService();
mapSearch();
drawBounds();
});
}
非常感谢!
答案 0 :(得分:0)
我想input#placeSearch
位于<form>
内。
按[ENTER]时提交表格。
您可以删除周围的表单或通过添加以下内容取消提交:
onsubmit="return false"
...到表单元素。
答案 1 :(得分:0)
我刚刚遇到了这个问题并且跟随了以下内容,因为我想在稍后阶段提交表单。此代码来自google groups。
var input = document.getElementById('create-location');
var options = {
//types: ['(cities)'],
};
autocomplete = new google.maps.places.Autocomplete(input, options);
google.maps.event.addDomListener(input, 'keydown', function(e) {
if (e.keyCode == 13)
{
if (e.preventDefault)
{
e.preventDefault();
}
else
{
// Since the google event handler framework does not handle early IE versions, we have to do it by our self. :-(
e.cancelBubble = true;
e.returnValue = false;
}
}
});