首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jquery Autocomplete中可以做到吗?

问在Jquery Autocomplete中可以做到吗?
EN

Stack Overflow用户
提问于 2012-09-26 22:06:40
回答 3查看 77关注 0票数 0

我正在开发一个“自动完成”功能为我的项目使用JQuery插件,我需要显示的建议(匹配结果)从两个不同的来源(数据库表)的用户,这意味着ajax请求需要发送的两个网址的时间。

有可能这样做吗?

如果我得到任何关于这方面的建议,我很高兴

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-26 22:22:58

我为jsdocu.com写了一些东西。但这里只有一个可以搜索的来源。然而,根据您的需要更改它并不是很难。

代码语言:javascript
复制
/** delayR by Yannick Albert | https://gist.github.com/3729753 **/
var delayR = function(a,b,c,d){c=null;return function(){d=this;clearTimeout(c);c=setTimeout(function(){a.apply(d,arguments)},b)}};
$("#s").bind('click keyup', delayR(function() {
    var term = this.value,
        url = $('#searchform').attr('action');

    if (term) {
        $.post(url, {
            s: term
        }, function(data) {
            var content = $(data).find('.hentry');
            if (content.length !== 0) {
                $("#autocomplete").fadeIn().empty().append(content);
            } else {
                $("#autocomplete").hide();
            }
        });
    } else {
        $("#autocomplete").fadeOut();
    }
}, 300));
票数 1
EN

Stack Overflow用户

发布于 2012-09-26 22:13:54

使用javascript函数作为自动补全的源代码。您可以在其中执行两个ajax请求,并将响应合并为一个。

代码语言:javascript
复制
$('#myinput').autocomplete({
   source: function(data, callback) {
      $.ajax(firstUrl, { 
         ..., 
         success: function(result1) {
                $.ajax(secondUrl, {
                     success: function(result2) {
                           var mergedResults = result1.concat(result2);
                           callback(mergedResults);
                     }
                });
         },
   }
}
票数 2
EN

Stack Overflow用户

发布于 2012-09-26 22:22:26

是的,这是可能的,但这是两个问题。使用微软发明的原始ajax对象,您不能同时发出多个请求。有许多脚本可以实现这一点,但你是一个幸运的家伙,jQuery已经有了一个。另一个问题是关于自动补全功能,可以用trie数据结构来解决。它在存储大型字典时非常有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12603590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档