【问题标题】:Select2 ignore certain input?Select2 忽略某些输入?
【发布时间】:2014-07-09 00:48:43
【问题描述】:

所以我使用基于 Select2 JQuery 的替换选择框。

我已经为通过 ajax 进行远程数据搜索进行了设置(在我找到的示例的帮助下),效果很好。我的最小输入值为 3,因此用户必须在搜索开始前输入至少 3 个字符(否则“A”将返回 90% 的可搜索值)。

不幸的是,我的大部分可搜索值也以“The”开头。因此,如果用户键入“The”,则返回 50% 的结果,并在一个巨大的下拉列表中填充基本未过滤的结果……不理想!

有什么方法可以让 Select2 忽略某些固定短语,即输入“The”不应该计入最少 3 个字符数!

$('#searchInput').select2({
    minimumInputLength: 3,
    placeholder: 'Please search here ...',
    ajax: {
        url: "/api/v1/institutes",
        dataType: 'json',
        quietMillis: 100,
        data: function(term, page) {
            return {
                query: term
            };
        },
        results: function(data, page ) {
            return { results: data }
        }
    },
    formatResult: function(institute) { 
        return "<div class='select2-user-result'>" + institute.name + "</div>"; 
    },
    formatSelection: function(institute) { 
        return institute.name; 
    },
    initSelection : function (element, callback) {
        var elementText = $(element).attr('data-init-text');
        callback({"term":elementText});
    }
});

【问题讨论】:

  • 不确定 select2 是否有相应的 API,但解决此问题的另一种方法是修改您的 API 服务器进程(如果可能)以不搜索“the”或“the”和仅在他们键入第 4/5 个字母时,然后返回结果。同时,您可以为只输入“the”或您识别的任何其他词的人返回“搜索词太宽泛”。
  • 查看文档:ivaynberg.github.io/select2 看起来您可以将 ajax: 替换为 query: 对于您自己的自定义函数,您必须自己编写 ajax 代码,但这意味着您可以添加任何自定义检查.
  • 您的/api/v1/institutes 是什么样的?难道你不能在查询你的表之前创建一个过滤器来忽略 The 吗?
  • 哦,哇,我才意识到这是从 2014 年开始的,哈哈

标签: javascript jquery jquery-select2


【解决方案1】:

您可以查看Select2 docs - search,您可以在其中自定义以匹配您的模式。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我通过在 html 代码中使用“data-minimum-input-length”属性解决了这个问题。

    <select id="mySelect" data-minimum-input-length="3"></select>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多