与谷歌地方的API工作,无法确定为什么autocomplete返回undefined这里调用来获取地方。 开发人员工具显示的是。 address_components就是应该在调用返回到autocomplete.getPlace 无法获取的未定义或空引用属性“address_components”places api无法获取属性'address_components'的未定义或空引用
function initAutoCompleteDynamic() {
var slideID = 99;
var idx = 99 - slideID;
var propcount = 5;
for (var i = 0; i < propcount; i++) {
var propaddress = "prop1address" + i;
var autocomplete = autocomplete + i;
autocomplete = new google.maps.places.Autocomplete(
document.getElementById(propaddress)),
{ types: ['geocode'] };
autocomplete.addListener('place_changed', fillinAddressDynamic);
}
}
和fillinAddressDynamic
var place=autocomplete.getPlace():
for (var i = 0; i < place.address_components.length; i++) {
alert("i am in the loop");
var addressType = place.address_components[i].types[0];
var field = addressType;
var completeaddress1 = '';
var propaddress = 'prop1address' + i;
var strnum = 'streetnumber' + i;
CR(i);//calling component resolver.
if (componentFormProduction[addressType]) {
var val = place.address_components[i][componentFormProduction[addressType]];
document.getElementById(CR[addressType]).value = val;
if (field == "street_number") {
var streetnum = document.getElementById(strnum).value = val;
}
if (field == "route") {
if (streetnum) {
completeaddress1 = streetnum + ' ' + val;
}
else {
completeaddress1 = val;
}
document.getElementById('prop1address0').value = completeaddress1;
}
}
}
不是因为没有选择地址,我相信这是由于调用的异步性质,这是来自谷歌API的动态加载数据,我认为修复将使用自定义的延迟对象,它似乎是一个时间错误有时它有时它不会推迟应该修复它/使它等待足够长的时间来完成。 – webdev8183