Select2 AJAX не показывает «Данные не найдены» при отсутствии данных в базе данных, вместо этого показывая параметр поиска в качестве опции для выбора

#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
                }
            }
        }
    });