2012-12-03 150 views
13

我使用jQuery UI自動完成與一些AJAX(數據不會被拖動,直到他們停止鍵入後)。我想這樣做一旦找到數據,Autocomplete將作爲搜索結果彈出。不過,只有當我再次開始輸入時纔會生效(直到我鍵入下拉列表纔會觸發,因爲直到停止輸入後纔會初始化)。手動觸發jQuery自動完成

我的代碼:

var availableTags = [ 
    "Perl", 
    "PHP", 
    "Python", 
    "Ruby" 
]; 
$('input#mainSearchBox').autocomplete({ 
    source: availableTags, 
     minLength: 0 
}); 
    $('input#mainSearchBox').data('autocomplete').menu.active; 

最後一部分是自動完成激活的嘗試,但它失敗。

+0

您使用_autocomplete一些AJAX_。在這種情況下,彈出窗口將出現在以下情況下:(i)您輸入了minLength字符(ii)自上次擊鍵後已經過去了毫秒(iii)Ajax結果已被提取並處理。你確定你明白這一點嗎? –

回答

30

search method應該做的伎倆:

$('input#mainSearchBox').autocomplete("search"); 

Fiddle

+1

啊! OMG,我用過:\t \t $('input#mainSearchBox')。autocomplete('search','demo-value'); 我應該刪除那... – PolishHurricane

+0

哈哈,minLength是這裏的關鍵。沒有它就無法工作。 –

4

您可以使用下面的腳本來手動切換自動完成:

var textbox = $('input#mainSearchBox'); 
var autocompleteBox = textbox.autocomplete('widget'); 

// toggle the autocomplete widget 
autocompleteBox.is(':hidden') ? 
    textbox.autocomplete('search', textbox.val()).focus() : 
    autocompleteBox.hide(); 

該代碼可以在combobox example對jQuery的自動完成功能演示站點(127-141線)來源中找到。