У меня уже есть несколько полей в форме, в которые включен API поиска Google. если форма отображается при загрузке страницы, она работает нормально. У меня есть некоторые поля в форме, которые я клонирую по нажатию кнопок. Эти поля формы также имеют API автозаполнения, но он не работает с этими API.
Вот мой jquery код, который я использую для вызова API Google
var autocomplete = {};
var autocompletesWraps = ['business_collections', 'exTab2', 'company_officer_details'];
var exTab2_form = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' };
var business_collections_form = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' };
var company_officer_details_form = { street_number1: 'short_name', route1: 'long_name', locality1: 'long_name', administrative_area_level_11: 'short_name', country1: 'long_name', postal_code1: 'short_name' };
function initialize() {
$.each(autocompletesWraps, function(index, name) {
if($('#'+name).length == 0) {
return;
}
autocomplete[name] = new google.maps.places.Autocomplete($('#'+name+' .autocomplete')[0], { types: ['geocode'] });
autocomplete[name].setComponentRestrictions({'country': ['au']});
google.maps.event.addListener(autocomplete[name], 'place_changed', function() {
var place = autocomplete[name].getPlace();
var form = eval(name+'_form');
for (var component in form) {
$('#'+name+' .'+component).val('');
$('#'+name+' .'+component).attr('disabled', false);
}
for (var i = 0; i < place.address_components.length; i++) {
var addressType = place.address_components[i].types[0];
if (typeof form[addressType] !== 'undefined') {
var val = place.address_components[i][form[addressType]];
$('#'+name+' #'+addressType).val(val);
}
}
});
});
}
В вышеприведенном коде все работает в business_collections, exTab2, которые предопределено на странице и загружается при загрузке страницы, но она не работает с company_officer_details, который не создается при загрузке страницы, но является клонированным элементом.