1

現在のところ、場所をクリックするとオートコンプリート ボックスは正常に機能しますが、押し下げて行きたい場所を強調表示して Enter キーを押すと、マップのホーム ロケーションに戻るだけです。これに関する洞察はありますか?この関数は initialize() で呼び出します。私は何が間違っていたのか分からなくなっています。これは単なる Google API のバグですか? もしそうなら、それを回避する方法についての洞察はありますか?

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();
    });
}

本当にありがとう!

4

2 に答える 2

0

input#placeSearchはの中に配置されていると思い<form>ます。

[ENTER]を押すとフォームを送信します。

周囲のフォームを削除するか、次を追加して送信をキャンセルすることができます。

onsubmit="return false"

...フォーム要素に。

于 2012-07-11T11:18:05.997 に答える
0

後の段階でフォームを送信したいので、この問題にぶつかり、次のようにしました。このコードはGoogle グループからのものです。

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; 
        } 
    } 
}); 
于 2013-04-23T12:16:51.303 に答える