select2:如何坚持搜索词?

时间:2015-11-04 19:32:38

标签: jquery search plugins jquery-select2

当我点击菜单时,我希望我的select2元素不清除搜索的术语。我已经搜索了很多这个功能,似乎有一天可能,但它在版本4.0中no longer works?我也尝试过实施this answer,但似乎没有用。

我的代码目前如下:

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

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

  1. 开始输入搜索
  2. 点击下拉列表
  3. 再次点击以打开下拉列表
  4. 以前的搜索已消失
  5. 期望的行为是:

    1. 以前的搜索已保留。

1 个答案:

答案 0 :(得分:0)

对我有用的解决方法:

保留上一个字符串查询

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

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

$(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');
    }
});