Автозаполнение карт Google на элементах клонов
У меня есть этот код для клонирования моего поля ввода, когда кто-то нажимает на кнопку "Добавить еще".
Javascript
$(".multipleunitaddress").each(function(){
var multipleunitaddressinput = $(this).get(0);
autocomplete2 = new google.maps.places.Autocomplete(multipleunitaddressinput,
{
componentRestrictions: {country: "nz"}
});
});
$("#addmore").click(function(){
var newelement = $("#multipleunitaddress").clone();
$(this).before(newelement);
autocomplete3 = new google.maps.places.Autocomplete(newelement,
{
componentRestrictions: {country: "nz"}
});
})
HTML
<div class="controls" id="multipleunitaddresswrapper">
<input type="text" id="multipleunitaddress" class="multipleunitaddress" name="multipleunitaddress" value="" class="required" placeholder="Property's Google-safe address" autocomplete="off">
<button id="addmore" class="btn btn-danger">Add more</button>
</div>
По умолчанию ввод Google запускает карты автозаполнения нормально. Кнопка "Добавить больше" клонирует мои данные. Однако для новых входов клонов автозаполнение карт Google не применяется. Как сделать так, чтобы автозаполнение карт Google работало на элементе клона?
1 ответ
Я получил это с помощью livequery со следующим кодом
HTML
<div class="controls">
<div class="multipleunitaddresswrapper">
<input type="text" class="multipleunitaddress" name="multipleunitaddress" value="" class="required" autocomplete="off">
</div>
<button id="addmore" class="btn btn-danger" type="button">Add more</button>
</div>
Javascript
$(".multipleunitaddress").livequery(function()
{
var multipleunitaddressinput = $(this).get(0);
autocompleteInput = new google.maps.places.Autocomplete(multipleunitaddressinput,
{
componentRestrictions: {country: "nz"}
});
});
$("#addmore").click(function(){
var newelement = $(this).prev(".multipleunitaddresswrapper").clone();
newelement.find("input").val("");
$(this).before(newelement);
})