【发布时间】:2021-03-07 09:45:48
【问题描述】:
我有一个小要求,我需要制作一个表单转发器,其中包含一个字段作为选择下拉列表。我已经创建了一个 jsfiddle 来重现这个问题。
https://jsfiddle.net/varun9522/gwb3rLp9/9/
[Js Fiddle 链接与示例代码和问题重现][1]
点击添加更多按钮时的问题,模板被添加,但从下拉列表中我无法选择或搜索选项。 以下是我的 HTML:
<div id="form-repeater">
<div class="row">
<select class="js-select2">
</select>
<button type="button" class="btn btn-primary"
id="add-more">Add More</button>
</div>
</div>
<div id="template" style='display: none;'>
<div class="parent-div">
<div class="row">
<select class="js-select2">
</select>
<button type="button" class="btn btn-primary"
id="remove">Remove</button>
</div>
</div>
</div>
以下是我的javascript:
$(".js-select2").select2({
ajax: {
url: "https://run.mocky.io/v3/651b234e-e668-4143-8c41-2e6a5bafcd27",
delay: 250,
processResults: processData
},
data: processData([{ "Id": "4", "Code": "JKL", "Description": "Juliet Kilo Laugh" }]).results,
minimumInputLength: 1,
escapeMarkup: function (m) { return m; } ,
templateSelection: myCustomTemplate
});
function processData(data) {
var mapdata = $.map(data, function (obj) {
obj.id = obj.Id;
obj.text = '[' + obj.Code + '] ' + obj.Description;
return obj;
});
return { results: mapdata };
}
function myCustomTemplate(item) {
return '<strong>' + item.Code + '</strong> - ' + item.Description;
}
$("#add-more").click(function() {
var content = $('#template').html();
$('#form-repeater').append(content);
})
$(".remove").click(function(obj) {
$(obj).closest('.parent-div').remove();
})
【问题讨论】:
-
如果您的问题得到解决,请不要忘记验证并支持答案