#javascript #jquery-select2
#javascript #jquery-select2
Вопрос:
Я работал над проектом, в котором я должен загрузить опцию select2 из вызова ajax.
Код работает нормально, за исключением результатов поиска, он всегда показывает параметр поиска в качестве опции. Даже если в базе данных нет данных, он по-прежнему отображает его в качестве опции, не показывая «Данные не найдены».
Мой код здесь
$(".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"}]}
Мой вид выглядит следующим образом.
Пожалуйста, помогите мне.
Ответ №1:
Если вы используете firemodal на stisla
$('#modal-create-promo').click(()=>{
setTimeout(()=>{
$('#fire-modal-1').removeAttr('tabindex');
});
});
$("#modal-create-promo").fireModal({
...
});
Это работает для меня
Ответ №2:
Это потому, что вы включаете опцию тегов в select2. Вам нужно удалить ‘Tags:[]’ из вашего кода.
посетите : 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
}
}
}
});