Select2 4.0和Ajax-记住上一个结果

时间:2019-06-18 08:10:49

标签: jquery jquery-select2

我已经找到了适用于3.5.x版本的解决方案,但不适用于4.x版本。

我需要的是:

  1. 找到ajax检索的值
  2. 显示结果列表
  3. 点击我需要的值
  4. 如果我在select2框中重新单击,则列表为空。
  5. 我需要重新输入以显示最后的结果.....
  6. 我想,当我在select2框内单击时,已经查看找到的最后一个列表

这是原始帖子的链接:Select2 - Ajax search - remember last results

针对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版本:(

0 个答案:

没有答案