2012-12-03 4 views
13

私はいくつかのAJAXでjQuery UIオートコンプリートを使用しています(データの入力が終わるまでデータは引き出されません)。データが見つかると、オートコンプリートが検索結果としてポップアップ表示されるようにしたいと思います。しかし、これは私が再び入力を開始したときにのみ機能します(入力を停止するまでは初期化されていないので、入力するまではドロップダウンは起動しません)。トリガーjQueryオートコンプリートを手動で

マイコード:

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

最後の部分は、オートコンプリートを有効にする試みであったが、それは失敗します。

+0

。その場合、(i)あなたがminLength文字を入力したときにポップアップが表示されます。(ii)最後のキーストロークからミリ秒が遅れます。(iii)Ajax結果がフェッチされて処理されます。これを理解してもよろしいですか? –

答えて

30

search methodは、トリックを行う必要があります:あなたは、いくつかのAJAX_で_autocomplete使用している

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

Fiddle

+1

ああ! OMG、私は使用しました:\t \t $( 'input#mainSearchBox')。オートコンプリート( 'search'、 'demo-value'); 私はそれを削除する必要があります... – PolishHurricane

+0

haha​​、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(); 

このコードはjQueryのオートコンプリートのデモサイト(ライン127-141)にcombobox exampleのソースで見つけることができます。

関連する問題