HWD*_*HWD 6 autocomplete google-maps-api-3 street-address
当用户将公寓号添加到他们的地址时,自动填充似乎认为它正在查看邮政编码,并更改建议的匹配:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
似乎不存在将自动完成 API 设置为忽略 apt 编号的设置,但是,我们可以在将字符串传递给 API 之前修剪文本。
在你的 中autocomplete = new google.maps.places.Autocomplete(,你可以这样做:
document.getElementById('autocomplete-address').replace(/#.*/g,"");
Run Code Online (Sandbox Code Playgroud)
由于document.getElementById('autocomplete-address')返回一个字符串,我们可以将#numberpaer 替换为空字符串.replace(/#.*/g,"")
| 归档时间: |
|
| 查看次数: |
3786 次 |
| 最近记录: |