gpt4 book ai didi

javascript - 在同一页面上添加多个 Google Places 实例

转载 作者:行者123 更新时间:2023-12-03 12:29:04 25 4
gpt4 key购买 nike

我希望在同一页面上包含 2 个 Google Places 自动完成实例。寻找为取货地点设置输入和为下车地点设置输入。

我假设它与输入元素的 ID 有关,但即使我将其更改为类,它仍然无法正常工作。

这是我目前拥有的,它适用于第一个字段,但我无法弄清楚如何让第二个输入字段自动完成,甚至显示出除了纯输入文本字段之外的任何迹象。

任何帮助是极大的赞赏!

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&libraries=places"></script>
<script type="text/javascript">
var placeSearch,autocomplete;
function initialize() {
autocomplete = new google.maps.places.Autocomplete(document.getElementById('autocomplete'), { types: [ 'geocode' ] });
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
}
function fillInAddress() {
var place = autocomplete.getPlace();

for (var component in component_form) {
document.getElementById(component).value = "";
document.getElementById(component).disabled = false;
}

for (var j = 0; j < place.address_components.length; j++) {
var att = place.address_components[j].types[0];
if (component_form[att]) {
var val = place.address_components[j][component_form[att]];
document.getElementById(att).value = val;
}
}
}
</script>

HTML
<body onload="initialize()">
<form action="" method="post" name="theform" id="theform">
<label>Pickup Location</label>
<input type="text" name="PickupLocation" onfocus="geolocate()" placeholder="Enter your pickup location" id="autocomplete" autocomplete="off" />

<label>Dropoff Location</label>
<input type="text" name="DropoffLocation" onfocus="geolocate()" placeholder="Enter your dropoff location" id="autocomplete2" autocomplete="off" />
</form>
</body>

最佳答案

更动态的方法。您不需要初始化元素 ID。

var inputs = document.getElementsByClassName('query');

var options = {
types: ['(cities)'],
componentRestrictions: {country: 'fr'}
};

var autocompletes = [];

for (var i = 0; i < inputs.length; i++) {
var autocomplete = new google.maps.places.Autocomplete(inputs[i], options);
autocomplete.inputId = inputs[i].id;
autocomplete.addListener('place_changed', fillIn);
autocompletes.push(autocomplete);
}

function fillIn() {
console.log(this.inputId);
var place = this.getPlace();
console.log(place. address_components[0].long_name);
}
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=AIzaSyC0Laj_Wk3kjFM-S8mYljc-WWCeesoDA_M"></script>

<input id="query-0" class="query" type="text"/>
<input id="query-1" class="query" type="text"/>
<input id="query-2" class="query" type="text"/>

关于javascript - 在同一页面上添加多个 Google Places 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20416058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com