我正在使用selected.js版本1.8.7 我可以使用clone(true)将div的内容与所有数据和事件克隆到另一个div。我更改了所有ID,以在克隆的项目上使用新的ID。 问题是当我选择一个javascript生成的选择列表时,它会激活原始的选择列表,而不是其本身。
我已经尝试使用clone()在没有所有数据和事件的情况下进行克隆。它会克隆,但根本不允许新生成的<select>
下拉。
我删除了selected.js,然后clone(true)复制了所有内容,每个<select>
列表都可以单独工作,但是没有过滤功能。
<form method="post" name="add_items">
<div class="clone-test" id="cloned">
<select id="items1" name="contract_item[]" class="form-control chosen-select" data-placeholder="Choose a item...">
<option value="0">Select a Item</option>
<option value="1">Car 1</option>
<option value="2">Car 2</option>
<option value="3">Car 3</option>
</select>
</div>
<div class="col-md-6" id="new_items"></div>
</form>
<input type="button" onclick="clone_div()" name="add" value="Add Another Item" class="btn btn-primary" id="add_select">
<script type="text/javascript">
var regex = /^(.+?)(\d+)$/i;
var cloneIndex = $("#cloned").length;
function clone_div(){
$("#cloned").clone(true)
.appendTo("#new_items")
.attr("id", "cloned" + cloneIndex)
.find("*")
.each(function() {
var id = this.id || "";
var match = id.match(regex) || [];
if (match.length == 3) {
this.id = match[1] + (cloneIndex);
}
})
cloneIndex++;
$("#new_items").html(html);
$(".chosen-select").chosen();
}
</script>
我希望每个<select>
列表都可以独立工作,并且每个列表都具有使用selected.js进行过滤的功能。无论选择哪种JavaScript生成的<select>
列表,我都可以激活原始选择列表。