我有以下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
看起来有点愚蠢,如果您定义了{{1},那么是否有人知道是否可以显示城市名称将结果限制在一个国家?
我发现当前的选择设置有点......垃圾确实是我当前的设置方法......
答案 0 :(得分:18)
调用Google API时,请指定属性“region”:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false&key=your_key&language=fr®ion=FR"></script>
然后,当您创建Autocomplete
对象时,请在componentRestriction
属性中指定国家/地区,以便它反映您指定的区域:
new google.maps.places.Autocomplete( $("#my-input-field").get(0), { componentRestrictions: {country: "fr"}, types: ["(regions)"] } );
答案 1 :(得分:5)
此外,您可以通过css帮助自己 - 隐藏自动完成项目中的最后一个跨度(=状态)。
.pac-item > span:last-child {
display: none;
}
答案 2 :(得分:3)
简短的回答是:Autocomplete
中的回复内容由Google控制(您在其中一条评论中提及此内容)而Autocomplete
api-doc未提供方式自定义显示的响应文本,而不是更改占位符文本 dev-guide。您使用的解决方案是关于您拥有的最佳选择(并且有点反应,但我不知道它是否真的“垃圾”)。
除此之外,如果您对该方法不满意,您可以随时创建自己的输入区域,并自己来回完全控制请求 - 响应。您可以直接使用地方资料库dev-guide,并完全控制所显示的所有内容。
答案 3 :(得分:1)
我等待100毫秒,然后用我想要的内容替换文本框。
除了我的情况,我想要一个空白框,但插入一个空格。