javascript – 如何在自动填充中更改结果过滤器?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在自动填充中更改结果过滤器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我不想进行文字匹配,而是通过正则表达式选择结果.

我可以覆盖自动完成的默认行为来完成此操作,还是需要替代结构?

最佳答案
有一种内置方法可以做到这一点:只为自动完成小部件中的source选项提供一个函数

var items = ['Foo','Bar','Hello','Goodbye','1234'];


$("#autocomplete").autocomplete({
    source: function(request,response) {
        // The term the user searched for;
        var term = request.term;

        // Extract matching items:
        var matches = $.grep(items,function(item,index) {
            // Build your regex here:
            return /\d+/.test(item);
        });

        // let autocomplete know the results:
        response(matches);
    }
});

http://jsfiddle.net/RSyrX/

请注意,由于我使用的简单正则表达式,此示例将始终返回“1234”.更有用的可能是根据术语(也可能)构建正则表达式.

这实际上与小部件本身过滤结果的方式非常相似.如果您提供数组作为源选项,请查看this line获取过滤器功能,并查看this line如何调用它.

猜你在找的jQuery相关文章