【发布时间】:2016-10-20 15:45:14
【问题描述】:
我有一个文本框,我附加了谷歌自动完成地址功能。 克隆时,它正在克隆文本框......但无法在克隆的文本框上获得该自动完成功能。 克隆功能在第一个文本框上工作,但在克隆后自动完成地址功能不起作用 请帮助摆脱这个..
下面是我的代码..
我要克隆的文本框代码
To Address:
<div class="product-item">
<div class="float-left"><input type="checkbox" name="item_index[]" /></div>
<div>
<?php
echo $this->Form->input('to_address', array('required' => false,'label' => false, 'div' => false,
'placeholder' => 'Enter to address', 'class' => 'form-control','id' => 'toaddress'));
?>
</div>
</div>
<input type="button" class = "readmore-btn" name="add_item" value="Add More" onClick="addMore();" />
<input type="button" class = "readmore-btn" name="del_item" value="Delete" onClick="deleteRow();" />
下面是google自动补全地址脚本。
<script>
function initialize() {
var address1 = (document.getElementById('toaddress'));
var autocomplete = new google.maps.places.Autocomplete(address1);
//autocomplete.setTypes(['geocode']);
//autocomplete.setTypes(['establishment']);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
return;
}
var address = '';
if (place.address_components) {
address = [
(place.address_components[0] && place.address_components[0].short_name || ''),
(place.address_components[1] && place.address_components[1].short_name || ''),
(place.address_components[2] && place.address_components[2].short_name || '')
].join(' ');
}
document.getElementById('tolat').value = place.geometry.location.lat();
document.getElementById('tolong').value = place.geometry.location.lng();
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
下面是我的克隆函数
<script>
function addMore() {
$(".product-item:last").clone().insertAfter(".product-item:last");
}
</script>
【问题讨论】:
-
在新克隆的元素上重新初始化你的插件
-
这是一个基本错误,很多人没有意识到它在页面上必须是唯一的
-
将 id 更改为另一个 UNIQUE id 或使用类
-
@madalinivascu 请用代码示例写一个真实的答案,不要使用 cmets。
-
@Soviut 我现在无法创建完整的答案,当我有足够的信息时我会提供它
标签: javascript jquery