Google Places JavaScript自动完成:我可以从地名中删除国家吗?

Google Places JavaScript自动完成:我可以从地名中删除国家吗?,javascript,google-maps,google-places-api,Javascript,Google Maps,Google Places Api,我有以下jQuery代码,它可以很好地获取所选国家的城市列表 var city; var place; $('#city').on('focus',function(){ input = this, options = { types: ['(cities)'], componentRestrictions: { country: $('#country option:selected').val()

我有以下jQuery代码,它可以很好地获取所选国家的城市列表

var city;   var place;

$('#city').on('focus',function(){
    input = this, options = {
        types: ['(cities)'],
        componentRestrictions: {
            country: $('#country option:selected').val()
            }
    };
    city = new google.maps.places.Autocomplete(input, options);
    google.maps.event.addListener(city, 'place_changed', function() {
        place = city.getPlace();
        $(input).val(place.address_components[0].long_name);
    })
})
基本上,一旦用户选择了地点,它会将输入框中的值替换为不带国家/地区的“城市”值

当用户已经选择了一个国家时,在下拉菜单中使用
City,Country
看起来有点愚蠢,所以如果您定义了
componentRestrictions
值将结果限制在一个国家,那么有人知道是否可以只显示城市名称吗


我发现我目前的设置方法,一旦选择了一点。。。垃圾真的…

简短的回答是:
自动完成
中的响应内容由谷歌控制(你在评论中提到了这一点),
自动完成
除了更改占位符文本之外,没有提供自定义显示的响应文本的方法。您使用的解决方案是您拥有的最佳选择(并且有点被动,但我不知道它是否真的是“垃圾”)


除此之外,如果您对这种方法不太满意,您可以创建自己的输入区域,并自己完全控制请求-响应的来回。您可以直接使用Places库并完全控制显示的所有内容。

我等待100秒,然后用我想要的内容替换文本框


除非在我的情况下,我想要一个空白框,但要插入一个空格。

调用Google API时,请指定属性“region”:


您还可以通过css在自动完成项中隐藏最后一个span(=状态)来帮助自己

.pac-item > span:last-child {
    display: none;
}

我已经看过你的问题好几次了,我觉得我不完全理解你所描述的。我想如果你加入一些标记,可能会给问题提供一些上下文,帮助大家理解。或者你的页面链接或者JSFIDLE上的一个例子?一般来说,你能编辑下拉列表中的内容吗?我的意思是,如果国家名称已知,
replace
将其从显示的下拉列表中删除。下拉列表由谷歌生成。此外,一堆代码也不起作用,链接到我的页面也没有任何帮助,所以一旦问题得到解决,它就不会出现在页面上,一旦其他人回答了这个问题,这个问题就变得毫无用处了。@Andrewills这里的人共享链接或建立一个JSFIDLE来更深入地观察事物并分享想法是很常见的。按照惯例,在该过程之后,添加后续评论或问题/答案编辑,以确保从该过程中学到的知识为每个人的利益而保存。如果您不想共享链接或设置JSFIDLE,这很酷,但这会让任何人都很难理解您想要实现的目标的细节或问题的根源。如果你试一试,我保证你会在这个问题上看到更多的活动。我只是想帮你——我知道,我已经为其他问题设置了fiddle,但在GooglePlaces上,API只在我的域上工作,因此需要我重新配置应用程序。当人们尝试他们的代码时,它也会耗尽我每天的查询限制!这是谷歌地图API的新功能吗?我差不多两年前就发布了这个问题!不幸的是,这对我们不起作用。但其他人似乎很好。为我使用
region=US
!在爱尔兰工作,谷歌地图脚本URL中附加了®ion=IE。由于这隐藏了国家和州,因此在许多州都有同名城市的情况下,这不是一个解决方案。例如,在美国四个州有一个叫做独立的城市。 new google.maps.places.Autocomplete( $("#my-input-field").get(0), { componentRestrictions: {country: "fr"}, types: ["(regions)"] } );
.pac-item > span:last-child {
    display: none;
}