我正在键入时自动完成不会过滤结果

时间:2012-02-02 09:04:49

标签: javascript jquery jquery-ui

我有一个非常简单的表单,它从searchAlbum.php获取JSON格式的值。它在我开始输入内容时有效,但它不会过滤结果,例如,即使我输入了123,它也会显示ab

这是我saerchAlbum.php正在返回的内容

["123","abc"]

这是我的Java脚本代码

$(document).ready(function(){
                $('.albumName').autocomplete({
                    source: 'searchAlbum.php'
                });
});

您可能会说它不应该过滤我的重新设置,我需要将我的输入作为参数传递,但为什么然后{jqery-ui页面上的this检查会为我做这个?

3 个答案:

答案 0 :(得分:0)

文档并不清楚,但是自动完成程序为您执行过滤的唯一时间是您的代码根本没有被调用(例如,您已经为它提供了一个数组source )。当您的代码被调用时(客户端代码,因为您已经为source提供了函数,或者服务器端代码,因为您已经提供了URL),您的代码应该进行过滤。 / p>

  

你可能会说它不应该过滤我的resoulds,我需要将我的输入作为参数传递但是为什么然后在jquery-ui页面上的这个测试会为我做这个?

由于示例调用的search.php页面根据term参数过滤结果,因此自动填充程序会将其传递给它。比较你从这些结果得到的结果:

http://jqueryui.com/demos/autocomplete/search.php?term=ti

http://jqueryui.com/demos/autocomplete/search.php?term=ro

你可以看到它正在过滤服务器端。

答案 1 :(得分:0)

js发送一个名为“term”的查询字符串参数,你的php代码需要通过过滤与“term”参数匹配的现有数据来返回数据。

答案 2 :(得分:0)

这不是Javascript或jQuery问题,而是PHP问题。如链接的jQuery-UI页面中所述,源脚本必须通过GET请求处理“term”属性。