【发布时间】:2020-07-14 13:33:57
【问题描述】:
我需要通过 ClassName 向输入字段添加自动完成功能。我让它工作了,但谷歌没有发回带有邮政编码的地址。
所以我尝试使用 addListener 在输入字段中插入 formatted_address。
在本例中,autocomplete.addListener 上的 input[i] 不起作用:
function initMap() {
var input = $('.my_adresse');
for (i = 0; i < input.length; i++) {
var autocomplete = new google.maps.places.Autocomplete(input[i], {
types: ['address'],
componentRestrictions: {
'country': ["de", "ch", "aut"]
}
});
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
$(input[i]).val(place.formatted_address);
});
}
}
在这个例子中,只有循环的最后一个元素在起作用:
var input = $('.my_adresse');
for (i = 0; i < input.length; i++) {
var autocomplete = new google.maps.places.Autocomplete(input[i], {
types: ['address'],
componentRestrictions: {
'country': ["de", "ch", "aut"]
}
});
var input_to_change= input[i];
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
$(input_to_change).val(place.formatted_address);
});
}
}
为什么我只得到循环的最后一个元素? 使用 Google 地图地点自动完成功能获取包含邮政编码的完整地址的最佳解决方案是什么?
【问题讨论】:
标签: javascript jquery google-maps for-loop google-places-api