Google Places JavaScript自动完成:我可以从地名中删除国家吗?
我有以下jQuery代码,它可以很好地获取所选国家的城市列表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()
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;
}