我需要一个可搜索的选择输入,不需要在JS中初始化。我在网站上使用Ajax
,所以您不知道呼叫前有多少选择项及其ID,因此可以使用data-list
解决方案,但用户不应发送键入的输入,这应该可以工作例如select输入,其中有一个id和一个定义的标签,将显示标签并发送id。你能帮助我吗?我发现的唯一解决方案需要这样的JS初始化:
$(".js-example-disabled").select2();
但是我们不知道AJAX调用之前的id,也不知道我们需要处理的选择输入的数量。
答案 0 :(得分:1)
您可以在AJAX调用的success
处理程序中构建自己的select元素。然后,将其添加到主体后,请使用.select2()
对其进行初始化。这里唯一要考虑的是文档中的位置。
function dynamicSelect2(url, placement) {
$.ajax({
url: url,
success: function(data) {
var $select = $('<select></select>');
$.each(data, function(i, item) {
$select.append(`<option value="${item}">${item}</option>`);
});
$select.appendTo(placement);
$select.select2();
})
});
}
我将其包装在一个函数中,以便您可以动态更改数据端点和在体内的位置。
dynamicSelect2('yourdata', document.body);