我正在尝试实施类似谷歌即时搜索的内容,在您在文本框中输入时显示可能的搜索。
到目前为止,我得到了结果为json字符串和jquery自动完成显示它们完美。现在我想显示所有包含搜索关键字的结果。
比如说,如果搜索键是“foo bar”,我的结果是“foo fun bar”;现在结果中包含“foo”和“bar”键,但当前的自动完成插件不会显示它。
有没有办法修改插件来实现这个目标?
答案 0 :(得分:1)
您需要修改自动完成窗口小部件的过滤器函数的默认行为,以将文本框值拆分为单个标记,并在每个标记上搜索源对象。
你可以download the jQuery UI source here。查看jquery.ui.autocomplete.js第422行,了解您需要修改的过滤器功能。您会注意到它返回正则表达式的测试,以查看值对象的标签成员,值成员或值对象本身是否与正则表达式匹配。您必须将测试结果聚合在由.split()调用返回的数组中的每个字符串上,该字符串元素来自这三个源中的一个。
如果您想缩小已修改的自动填充代码,请使用Google's Closure Compiler Service。
答案 1 :(得分:0)
您如何查询数据?在服务器站点中,您应该获取 包含 您的搜索的所有记录,而不是Startwith。
答案 2 :(得分:0)
取决于您获取数据的方式。按空格拆分关键字并列出同时具有Foo和Bar的所有数据。