目的是将数据从Controller
端导入到Select2
元素(启用多选功能)。我希望安装程序看起来像Stack Overflow中的标签框,在其中您可以开始输入标签,选择它,然后再选择另一个。
我一直使用Select2
文档作为参考,但是该请求没有发送到Controller。
Select2 Documentation
我的代码:
$(".jsData").select2({
ajax: {
contentType: 'application/json',
url: '<%=Url.Action("GetDataMethod","RelevantController")%>',
type: 'POST',
dataType: 'json',
data: function (term) {
return {
sSearchTerm: term
};
},
results: function (data) {
var datajs = $.map(data, function (obj) {
obj.text = obj.someterm; // desired field,
obj.id = obj.someId;
return obj;
});
return {
results: JSON.parse("[" + datajs.split(",") + "]")
};
}
},
multiple: true
});
我对将数据动态添加到Select 2还是比较陌生,因此,我们将不胜感激。谢谢!
最佳答案
更新:找到了解决方案,并在此发布给其他人。HTML
<input class="jsData" style="width: 100%" id="select2Data" ></input>
Javascript
$(".jsData").select2({
ajax: {
minimumInputLength: 4,
contentType: 'application/json',
url: '<%=Url.Action("GetData","Controller")%>',
type: 'POST',
dataType: 'json',
data: function (term) {
return {
sSearchTerm: term
};
},
results: function (data) {
return {
results: $.map(JSON.parse(data), function (item) {
return {
text: item.term,
slug: item.slug,
id: item.Id
}
})
};
}
},
multiple: true
});
关于javascript - 使用AJAX将基于JSON的远程数据导入Select2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44299662/