Select2: создать новую опцию, когда ajax возвращает 404 - PullRequest
0 голосов
/ 21 февраля 2020

Я использую select2 v4 с ajax заполненными данными. API фильтрует данные перед отправкой обратно, поскольку это очень большая база данных, и возвращает ошибку 404, если поисковый термин не найден в базе данных. Я хочу, чтобы мои пользователи могли по-прежнему создавать новый параметр поиска, если ajax возвращает значение 404. В настоящее время он позволяет им только добавлять новый параметр поиска, если поисковый термин найден в базе данных и отобразит ошибка «загрузка не удалась», если она не найдена. Мой текущий код:

    $('input[name="Organization"]').select2({
    placeholder: "placeholder",
    allowClear: true,
    minimumInputLength: 2,
    ajax: {
        url: 'myURL',
        dataType: 'json',
        quietMillis: 750,
        transport: function(params) {
            params.error = function(jqXHR) {
                if (jqXHR.status == 404) {
                    console.log("404");
                }
            };  
            return $.ajax(params);
        },
        data: function (term) {
            currentSearch = term;
            return {
                term: term
            };
        },
        results: function (data) {
            var results = [];

            $.each(data, function (index, entity) {
                if(entity.title.search(new RegExp(currentSearch, "i")) >= 0){
                    results.push({
                        id: entity.title,
                        text: entity.title
                    });
                }
            });
            return {
                results: results
            };
        }, //end results
    }, // end ajax
    createSearchChoice: function(term, data) { 
        if ($(data).filter(function() { return this.text.localeCompare(term)===0; }).length===0) {
            return {
                id:term, 
                text:term + " (new)"
            };
        }
    }
}); // end select2

Как я могу позволить пользователю создать новый вариант поиска, если возвращается 404?

...