当用户在其地址中添加公寓号码时,自动填充似乎认为它正在查看邮政编码,并更改建议的匹配项:
6250 Hollywood Boulevard#20
有没有办法让这个工作,或者如果没有,一种方法来忽略公寓号码并将其与表单提交一起作为单独的值发送? (请记住,用户可能会使用#,Unit,Apt等来定义其单位编号)
var placeSearch, autocomplete;
var componentForm = {
street_number: 'short_name',
route: 'short_name',
locality: 'long_name',
administrative_area_level_1: 'short_name',
country: 'long_name',
postal_code: 'short_name'
};
function initialize(){
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('autocomplete-address')),
{ types: ['geocode'] });
google.maps.event.addListener(autocomplete, 'place_changed', function(){
fillInAddress();
}
);
}
function fillInAddress(){
var place = autocomplete.getPlace();
for(var component in componentForm){
document.getElementById(component).value = '';
document.getElementById(component).disabled = false;
}
for(var i = 0; i < place.address_components.length; i++){
var addressType = place.address_components[i].types[0];
if(componentForm[addressType]){
var val = place.address_components[i][componentForm[addressType]];
document.getElementById(addressType).value = val;
}
}
}
答案 0 :(得分:1)
似乎没有设置将Autocomplete API设置为忽略apt号,但是,我们可以在将字符串传递给API之前修剪文本。
在您的autocomplete = new google.maps.places.Autocomplete(
中,您可以执行以下操作:
document.getElementById('autocomplete-address').replace(/#.*/g,"");
由于document.getElementById('autocomplete-address')
返回一个字符串,我们可以用#number
.replace(/#.*/g,"")
paer