Javascript Google places在选择结果后使用了错误的输入
我正在用谷歌的places Auto completion来洗刷我的头发。 我有5个输入在我的页面,我想绑定到谷歌的地方自动完成。 页面加载良好,库初始化所有输入良好。 但是,当我单击自动完成的结果时,我在调试器中意识到错误的输入字段被传递给了侦听器。 以下是我如何初始化输入:Javascript Google places在选择结果后使用了错误的输入,javascript,autocomplete,google-places-api,Javascript,Autocomplete,Google Places Api,我正在用谷歌的places Auto completion来洗刷我的头发。 我有5个输入在我的页面,我想绑定到谷歌的地方自动完成。 页面加载良好,库初始化所有输入良好。 但是,当我单击自动完成的结果时,我在调试器中意识到错误的输入字段被传递给了侦听器。 以下是我如何初始化输入: var autocomplete = {}; var autocompletesWraps = ['from', 'destination','publish-dn','publish-an','publish-st']
var autocomplete = {};
var autocompletesWraps = ['from', 'destination','publish-dn','publish-an','publish-st'];
function initautocomplete(){
//Bind the Town input fields to google apis
directionsService = new google.maps.DirectionsService();
for(var index=0;index<autocompletesWraps.length;index++){
var name = autocompletesWraps[index];
if(!document.getElementById(name)) {
return;
}
autocomplete[name] = new google.maps.places.Autocomplete(document.getElementById(name), { types: ['geocode'],componentRestrictions: {country: 'nz'} });
google.maps.event.addListener(autocomplete[name], 'place_changed', function() {
var place = autocomplete[name].getPlace();
var latitude = place.geometry.location.lat();
var longitude = place.geometry.location.lng();
var town = place.formatted_address.split(',')[0];
document.getElementById(name).setAttribute('data-l',latitude);
document.getElementById(name).setAttribute('data-g',longitude);
}
});
}
}
</script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXXXXXXXXXXXXXX&libraries=places&callback=initautocomplete"></script>
var autocomplete={};
var autocompleteswrapps=['from','destination','publish-dn','publish-an','publish-st'];
函数initautocomplete(){
//将Town输入字段绑定到google API
directionsService=new google.maps.directionsService();
对于(var指数=0;指数
我没有选择了!如果有人能帮我,那就太好了!
干杯好的,
我通过为每个输入创建全局变量来解决这个问题。
然后在初始化期间逐个填充它们。
那么一切都很好