Google Places API自动填充无法正常工作

时间:2012-07-11 10:33:05

标签: google-maps-api-3

现在,当我点击该位置时,自动完成框工作正常,但是当我按下时,突出显示我要去的位置,然后按回车键,它只会返回到地图的起始位置。有什么见解吗?我在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();
    });
}

非常感谢!

2 个答案:

答案 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; 
        } 
    } 
});