2011-04-12 96 views
0

我打算爲多個源實現jquery-ui-autocomplete。以下是我的場景:我想根據某些條件擁有多個自動完成源。這裏是我的代碼:在運行時更改源代碼自動完成

var arrLookup = ['a', 'b', 'c', 'd']; 
var arrA = ['a1', 'a2', 'a3', 'a4']; 
var arrB = ['b1', 'b2', 'b3', 'b4']; 
var arrC = ['c1', 'c2', 'c3', 'c4']; 
var arrD = ['d1', 'd2', 'd3', 'd4']; 

$('#txt').autocomplete({ 
    source: function (request, response) { 
     // delegate back to autocomplete, but extract the last term 
     response($.ui.autocomplete.filter(arrLookup, request.term.split(/,\s*/).pop())); 
    }, 
    minLength: 1, 
    select: function (event, ui) { 
     var terms = split(this.value); 
     // remove the current input 
     terms.pop(); 
     // add the selected item 
     terms.push(ui.item.value); 
     // add placeholder to get the comma-and-space at the end 
     this.value = terms.join(", "); 
     return false; 
    } 
}); 

現在我想要的是,最初的自動完成源應該是arrLookup。如果我選擇a,則應該將源修改爲arrA,如果我選擇b;他的源被修改爲arrB,等等等等。現在,由於它將是一個多值自動完成功能,所以一旦我點擊「」,源代碼就會切換回arrLookup。任何人都可以幫我開源。我知道這隻能通過源代碼才能實現,但我無法獲得正確的條件。

+0

我有點困惑。難道你不能把邏輯放在你的'source'函數中去查看正確的數組嗎? – 2011-04-12 13:12:45

+0

我試過了,但我無法得到這樣做的邏輯。首先,我需要提取最後一個「,」後的所有數據。然後我需要再次解析數據來切換數據源。我覺得有點複雜。雖然可行,但無法獲得正確的條件。任何幫助,將不勝感激。 – Ashish 2011-04-12 13:26:56

回答

0

你可能想嘗試使用jQuery自動完成插件(它有一個「setOptions」方法)而不是jQuery-ui插件。

看看這個post欲瞭解更多信息。

更新:Here是如何在仍使用jQuery-ui的情況下執行此操作的另一個示例。看看最初開始線程的人最後發表的帖子。