與谷歌地方的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