javascript – 谷歌地图Places API V3自动完成 – 在输入时选择第一个选项(让它保持这种状态)

前端之家收集整理的这篇文章主要介绍了javascript – 谷歌地图Places API V3自动完成 – 在输入时选择第一个选项(让它保持这种状态)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Google maps Places API V3 autocomplete – select first option on enter16个
这个问题与这个问题的答案有关: Google maps Places API V3 autocomplete – select first option on enter.基本上,当用户按下回车键时,该字段使用自动完成列表中的第一个建议.该问题的答案有一个jsfiddle – @L_403_2@ – 除非文本字段失去焦点,否则字段值将返回到部分输入的值.

例如,用户单击输入字段并键入“ox”,自动完成框会弹出一些建议,然后用户按Enter键.然后更改地图以显示自动完成框中第一个项目的位置(带有标记),输入字段的值将更改为自动完成框中的第一个项目.然后,用户单击字段外的某处,输入字段的值将返回“ox”.

我希望输入字段的值保留为第一个自动完成建议.

解决方法

试试这个: http://jsfiddle.net/pbbhH/60/

基本上将选择逻辑抽象为新函数selectFirstResult().然后在按下输入和失去对文本的焦点时调用函数.

function selectFirstResult() {
    infowindow.close();
    var firstResult = $(".pac-container .pac-item:first").text();

    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({"address":firstResult },function(results,status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var lat = results[0].geometry.location.lat(),lng = results[0].geometry.location.lng(),placeName = results[0].address_components[0].long_name,latlng = new google.maps.LatLng(lat,lng);

            moveMarker(placeName,latlng);
            $("input").val(firstResult);
        }
    });   
 }

编辑:根据@ Ben的评论在下面做了一些小改动.

原文链接:https://www.f2er.com/js/151490.html

猜你在找的JavaScript相关文章