【问题标题】:jQuery-autocomplete filter match by first letterjQuery-autocomplete 过滤器按首字母匹配
【发布时间】:2014-04-23 09:07:28
【问题描述】:

我正在使用以下插件来创建自动完成功能:

https://github.com/devbridge/jQuery-Autocomplete

下面是他们的现场演示:

http://www.devbridge.com/sourcery/components/jquery-autocomplete/#jquery-autocomplete

现在的问题是,我想过滤结果,只显示以第一个字母开头的字母匹配。

例如,如果我输入“a”,则只会出现以“a”开头的国家/地区。

我查看了这个插件的库,我看到那里有一个lookupFilter 函数,但不知道如何使用它。

有没有用过这个库的朋友指点一下?

我想使用这个插件而不是 jQuery UI,因为它是轻量级的。

【问题讨论】:

    标签: javascript jquery autocomplete


    【解决方案1】:

    我在他们的库中检查了lookupFilter,下面是代码:

    lookupFilter: function (suggestion, originalQuery, queryLowerCase) {
        return suggestion.value.toLowerCase().indexOf(queryLowerCase) !== -1;
    },
    

    如果值存在于结果中,他们将在此处返回值。

    -1 表示未找到字母a,因此它们在任何情况下都会返回该值。

    所以只要把它调成:

    lookupFilter: function (suggestion, originalQuery, queryLowerCase) {
        return suggestion.value.toLowerCase().indexOf(queryLowerCase) === 0;
    },
    

    正好在第 0 个索引处。

    这将返回a 作为第一次出现的结果。

    【讨论】:

    • 谢谢!这个对我有用!另一个问题是,它会突出显示所有匹配的字母,是否可以只突出从开头开始的模式?我看到 formatResult 函数正在尝试将所有匹配的模式 RegExg 到
    • @Robert 当然可以。之所以突出显示所有出现,是因为它们在替换方法中有'gi' 全局标识符。所以你可以简单地删除它。
    • 当你说删除它时,这是什么意思?删除整个功能?我想保持第一个匹配突出显示。我发现如果我删除这个gi,什么都不会突出显示
    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2020-11-23
    • 2012-01-26
    相关资源
    最近更新 更多