我需要生成n号地址获取器并在json中获取格式化输出,我可以通过按钮单击上的ajax来完成。但是我没有得到如何使用google api动态生成自动完成并单独获取内容。
我需要展示与此小提琴相同的设计类型。
initialize();
var placeSearch, autocomplete;
var componentForm = {
street_number: 'short_name',
route: 'long_name',
locality: 'long_name',
administrative_area_level_1: 'short_name',
country: 'long_name',
postal_code: 'short_name'
};
function initialize() {
autocomplete = new google.maps.places.Autocomplete(
/** @type {HTMLInputElement} */(document.getElementById('autocomplete')),
{ types: ['geocode'] });
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
}
function fillInAddress() {
var place = autocomplete.getPlace();
for (var component in componentForm) {
document.getElementById(component).value = '';
document.getElementById(component).disabled = false;
}
for (var i = 0; i < place.address_components.length; i++) {
var addressType = place.address_components[i].types[0];
if (componentForm[addressType]) {
var val = place.address_components[i][componentForm[addressType]];
document.getElementById(addressType).value = val;
}
}
}
function geolocate() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var geolocation = new google.maps.LatLng(
position.coords.latitude, position.coords.longitude);
autocomplete.setBounds(new google.maps.LatLngBounds(geolocation,
geolocation));
});
}
}
目前我添加了3个表单,但我需要通过&#34;添加表单&#34;添加表单。按钮,我认为我可以使用jquery追加。但是如何让它在谷歌自动完成工作?
由于
答案 0 :(得分:0)
如果您想重新使用它来管理多个表单,那么您的javascript代码必须更“通用”,而不是基于DOM元素ID。
包含自动完成实例的全局变量是一个好主意。
我编辑了你的jsFiddle建议你一个基于jQuery的解决方案(你把jQuery标签放在我认为我可以依赖):
#addressForms
,其中表单将在#addForm
按钮#template
中。每次点击#addForm
时,模板内容都会被复制,使用自动填充初始化并附加到#addressForms
componentForm
并在每个字段元素上添加了数据(data-type
)如果满足您的需求,请查看 jsFiddle 。
编辑:
我根据你的评论创建了这个 jsFiddle 。它尚未完成,但可以提供帮助。