问题描述
我一直在研究一个项目,该项目需要从ajax调用中加载select2选项。
代码工作正常,除了搜索结果外,它始终将搜索参数显示为选项。即使数据库中没有数据,它仍将其显示为选项,而不显示“未找到数据”。
$(".search_user").select2({
minimumInputLength: 11,tags: [],ajax: {
url: "/user/get_user",dataType: 'json',type: "GET",quietMillis: 250,data: function (term) {
return {
term: term
};
},processResults: function (data) {
var Return = [];
for (var i in data.item) {
console.log(data.item[i])
if (data.item[i].id != data.item[i].text) {
Return.push(data.item[i]);
}
}
return {
results: Return
}
}
}
});
我的返回json就是这样
{"item":[{"id":16,"name":"Razin Abid"}]}
我的视图看起来像这样。
请帮帮我。
解决方法
如果您在stisla上使用Firemodal
$('#modal-create-promo').click(()=>{
setTimeout(()=>{
$('#fire-modal-1').removeAttr('tabindex');
});
});
$("#modal-create-promo").fireModal({
...
});
这对我有用
,那是因为您启用了 select2 中的标签选项。您需要从代码中删除“标签:[]”。
访问:https://select2.org/tagging
所以,你的代码应该是这样的:
$(".search_user").select2({
minimumInputLength: 11,ajax: {
url: "/user/get_user",dataType: 'json',type: "GET",quietMillis: 250,data: function (term) {
return {
term: term
};
},processResults: function (data) {
var Return = [];
for (var i in data.item) {
console.log(data.item[i])
if (data.item[i].id != data.item[i].text) {
Return.push(data.item[i]);
}
}
return {
results: Return
}
}
}
});