从Autocomplete jQuery UI获取返回结果的数量

时间:2014-03-21 07:17:44

标签: javascript jquery-ui jquery-ui-autocomplete

我收到了以下代码

$("#UserSearch").autocomplete({
    source: "search.php",
    minLength: 2
});

这里用户输入一封电子邮件,我通过数据库查找,但我需要找到自动完成停止获取结果的时刻。例如,我有user@example.com和user2@example.com。如果当前用户寻找" user3"并且页面不再返回结果如何捕捉到这一刻,以便我可以在页面上显示另一个元素。

1 个答案:

答案 0 :(得分:4)

您可以考虑检查open事件中显示的元素数量,如果len为0,则可以相应地显示另一个元素。

其他解决方案是使用自定义_renderItem函数或自定义扩展窗口小部件,但在这种情况下,这可能是一个更简单的解决方案。

代码:

$("#project").autocomplete({
    minLength: 0,
    source: projects,
    open: function (event, ui) {
        var len = $('.ui-autocomplete > li').length;
        $('#count').html('Founded ' + len + ' results');
    }
});

演示:http://jsfiddle.net/IrvinDominin/DZ9zU/

更新

更好地使用response事件:

  

搜索完成后,在显示菜单之前触发。有用   用于本地操作建议数据,其中包含自定义源   选项回调不是必需的。当a时总是触发此事件   搜索完成,即使菜单不会显示,因为有   没有结果或禁用自动填充功能。

代码:

$("#project").autocomplete({
    minLength: 0,
    source: projects,
    response: function (event, ui) {
        var len = ui.content.length;
        $('#count').html('Founded ' + len + ' results');
    }
});

演示:http://jsfiddle.net/IrvinDominin/DZ9zU/1/