Select2 4.0 и ajax - запомни последний результат - PullRequest
0 голосов
/ 18 июня 2019

Я уже нашел решение для версии 3.5.x, но оно не работает для версии 4.x.

Что мне нужно:

  1. найти полученное значениепо ajax
  2. появляется список результатов
  3. нажмите на нужное мне значение
  4. если я щелкну внутри поля select2, список будет пуст.
  5. мне нужноперепечатывать, чтобы показать последние результаты .....
  6. Я хотел бы, чтобы, когда я щелкаю внутри поля select2, уже просматривал последний найденный список

Это ссылкаоригинальное сообщение: Select2 - Ajax search - запомните последние результаты

Код, предложенный для версии 3.5.x:

$(document).ready(function () {
    $('#select').select2({
        // this part is responsible for data caching
        dataCache: [],
        query: function (q) {
            var obj = this,
                    key = q.term,
                    dataCache = obj.dataCache[key];

            //checking is result in cache
            if (dataCache) {
                q.callback({results: dataCache.results});
            } else {
                $.ajax({
                    url: 'ajax.php',
                    data: {q: q.term},
                    dataType: 'json',
                    type: 'POST',
                    success: function (data) {
                        //copy data to 'cache'
                        obj.dataCache[key] = data;
                        q.callback({results: data.results});
                    }
                })
            }
        },
        placeholder: 'Search something',
        width: '333',
        minimumInputLength: 3,
    });
    // this part is responsible for setting last search when select2 is opening
    var last_search = '';
    $('#select').on('select2-open', function () {
        if (last_search) {
            $('.select2-search').find('input').val(last_search).trigger('paste');
        }
    });
    $('#select').on('select2-loaded', function () {
        last_search = $('.select2-search').find('input').val();
    });
});

Понятия не имею, как обновитьВерсия 4.0: (

...