我有以下的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
值限制的结果,一个国家?
我觉得我目前的设置是,一旦已经做出选择是有点......垃圾真正的方法...
当调用谷歌API,指定属性“区”:
<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)"]
}
);
您也可以通过CSS帮助自己 - 躲在自动完成项目的最后一个跨距(=状态)。
.pac-item > span:last-child {
display: none;
}
简短的回答是:在响应内容Autocomplete
是由谷歌(你在你的意见之一提到这一点),并且控制Autocomplete
API的文档没有提供一个方法来定制显示的响应文本,不是改变对方占位符文本 DEV-指南 。 您正在使用的解决方案是关于你的最佳选择(是有点反应,但我不知道它真正的“垃圾”)。
除此之外,如果你不太满意这种做法,你总是可以只创建自己的输入区域,并采取请求 - 响应的完全控制来回自己。 您可以使用商家信息库开发导向直接采取所显示的一切完全控制。
我等待100个milleseconds,然后替换我想要的内容的文本框中。
除了在我的情况下,我想一个空白框,而是插入一个空格。
文章来源: Google Places JavaScript Autocomplete: can I remove the country from the place name?