簡體   English   中英

是否可以在Jquery Autocomplete中執行?

[英]Is it possible to do in Jquery Autocomplete?

我正在使用JQuery插件為我的項目開發“自動完成”功能,我需要從兩個不同的源(數據庫表)向用戶分發建議(匹配的結果)給用戶,這意味着需要在兩個位置發送兩個URL的ajax請求時間。

有可能嗎?

如果我對此有任何建議,我很高興

使用javascript函數作為自動完成的來源。 您可以在內部執行兩個ajax請求,並將響應組合為一個。

$('#myinput').autocomplete({
   source: function(data, callback) {
      $.ajax(firstUrl, { 
         ..., 
         success: function(result1) {
                $.ajax(secondUrl, {
                     success: function(result2) {
                           var mergedResults = result1.concat(result2);
                           callback(mergedResults);
                     }
                });
         },
   }
}

我已經為jsdocu.com編寫了一些東西。 但是,這只是搜索來源之一。但是,根據您的需求進行更改並不難。

/** 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));

是的,有可能,但這是兩個問題。 使用Microsoft發明的原始ajax對象,您不能同時發出多個請求。 有許多腳本可以實現這一目標,但是您很幸運,jQuery已經很幸運了。 另一個問題是關於自動完成功能,可以使用trie數據結構解決。 它可以有效地存儲大型詞典。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM