[英]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.