Select2忽略特定的输入?

7
所以我正在使用基于JQuery的Select2替代选择框。我已经设置好了远程数据搜索,通过ajax查询非常好用。我将最小输入值设置为3,这样用户必须输入至少3个字符才能开始搜索(否则,“A”将返回90%的可搜索值)。不幸的是,我的大部分可搜索值也以“the”开头。所以如果用户输入“The”,就会返回50%的结果,填充一个巨大的下拉列表,基本上没有过滤结果... 这并不理想!有没有办法让Select2忽略某些固定短语,即输入“The”不应计入最小三个字符的限制?
$('#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”或任何其他您识别的单词的人,您可以返回“搜索词过于宽泛”。 - Adam21e
看文档:http://ivaynberg.github.io/select2/,似乎可以用query:替换ajax:来使用自定义函数,需要自己编写ajax代码,但这意味着您可以添加任何自定义检查。 - Adam21e
你的 /api/v1/institutes 是什么样子的?在查询表之前,你不能创建一个过滤器来忽略其中的 The 吗?请注意,本次翻译仅为内容翻译,不涉及任何解释。 - Cesar Bielich
哦,哇,我刚意识到这是2014年的事情了,哈哈。 - Cesar Bielich
2个回答

0

0

我曾经遇到过同样的问题。我通过在HTML代码中使用"data-minimum-input-length"属性来解决这个问题。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接