【问题标题】:select2: How to persist search term?select2:如何保留搜索词?
【发布时间】:2016-02-05 10:55:59
【问题描述】:

当我点击离开菜单时,我希望我的 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. 以前的搜索消失了

期望的行为是:

  1. 保留以前的搜索。

【问题讨论】:

  • 你也可以发布html吗?

标签: jquery search plugins jquery-select2


【解决方案1】:

对我有用的解决方法:

保留最后一个字符串查询

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2017-01-04
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    相关资源
    最近更新 更多