select2:如何保留搜索词?

bpr*_*mas 5 search jquery plugins jquery-select2

我希望当我单击菜单之外的位置时,我的 select2 元素不会清除搜索的术语。我搜索了很多这个功能,似乎有一天可以实现,但是在4.0版本中它不再起作用了?我也尝试过实现这个答案,但似乎不起作用。

目前我的代码如下:

$(document).ready(function () {
    function displayCurrentValue(selectedObject, currentSearchTerm) {
        return currentSearchTerm;
    }
    $("#reference").select2({
        nextSearchTerm: displayCurrentValue
    });
    $("#reference").select2({
        width: "100%",
        language: "pt-BR",
        ajax: {
            //omitted
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,当前的行为都是:

  1. 开始输入搜索内容
  2. 单击下拉菜单外部
  3. 再次单击打开下拉菜单
  4. 之前的搜索已经消失了

期望的行为是:

  1. 先前的搜索将被保留。

Lui*_*MPF 0

对我有用的解决方法:

保留最后一个字符串查询

$(document).on('select2:closing','.select2-hidden-accessible',function(){
    $(this).data('kmselect2LastSearch',$('.select2-search__field').val());
});
Run Code Online (Sandbox Code Playgroud)

根据最后一个字符串查询获取并选择最后一个项目

$(document).on('select2:open','.select2-hidden-accessible',function(){
    if (typeof $(this).data('kmselect2LastSearch')=='undefined') {
        return;
    }
    var prevValue = $(this).data('kmselect2LastSearch');
    if ( prevValue != '' ) {
        $('.select2-search__field').val(prevValue).trigger('keydown').trigger('input');
    }
});
Run Code Online (Sandbox Code Playgroud)