【问题标题】:How can I show only the city name in a geo autocomplete input after a place is selected?选择地点后,如何在地理自动完成输入中仅显示城市名称?
【发布时间】:2015-01-31 09:36:37
【问题描述】:

使用 jQuery Geocoding 和 Places Autocomplete Plugin 有没有办法在我从建议列表中选择结果时只显示城市名称(而不是州或国家/地区)?

【问题讨论】:

  • Razvan,你有机会试试我的答案吗?
  • 是的,很抱歉没有更快地回复您。它就像一个魅力。谢谢!

标签: jquery google-geocoding-api


【解决方案1】:

是的,从自动完成下拉列表中选择后,可以只显示地理编码结果的一部分。

您需要做的是为place_changed 事件添加一个侦听器,然后触发“模糊”并设置您希望输入框显示的任何内容。

这应该让你开始:

function init(){
    var autocomplete = new google.maps.places.Autocomplete(
        // make sure we pass the HTML element and not the jquery object
        $('#my-input-field')[0]
        ,{
            types: ['geocode']
        }
    );

    // When the user selects an address from the dropdown,
    google.maps.event.addListener(autocomplete, 'place_changed', function() {
        var parts = [], 
            city_name = '';

        // convert the address to something more usable
        $.each(place.address_components, function (i, value) {
            parts[value.types[0]] = value;
        });
        city_name = parts.locality ? parts.locality.long_name : '';

        $('#my-input-field')
            .one('blur', function(){
                // and here's where we set the input to whatever value we'd like
                $(this).val(city_name);
            })
            .trigger('blur');
    });
}

【讨论】:

  • 嗨,hberg,这行得通,非常感谢!但是当代码启动时,人们可以看到从所选值到城市名称的转换。是否可以首先防止用所选值填充输入字段,然后用所需值手动填充它?非常感谢。
  • 很高兴听到这个消息!使用该插件时,我在自己的网站上遇到了同样的问题,但还没有解决。谷歌的自动完成插件实际上用整个地址匹配预填充输入字段,这种方法只是快速替换它。您必须以某种方式拦截另一个插件以防止它设置输入字段值。想设置一个 jsFiddle 来玩弄它吗?
猜你喜欢
  • 1970-01-01
  • 2018-06-04
  • 2012-12-28
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2018-03-01
相关资源
最近更新 更多