2012-12-03 11 views
13

Używam autouzupełniania jQuery UI z niektórymi AJAX (dane nie są wyciągane, dopóki nie przestaną pisać). Chciałbym, aby tak było, gdy dane zostaną znalezione, autouzupełnianie wyświetli się jako wynik wyszukiwania. Działa to jednak tylko wtedy, gdy ponownie zacznę pisać (lista rozwijana nie uruchamia się, dopóki nie piszę, ponieważ nie jest ona inicjowana, dopóki nie przestanę pisać).Trigger Autocomplete jQuery ręcznie

Mój kod:

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

Ostatnia część była próbą włączyć autouzupełnianie, ale to się nie powiedzie.

+0

Używasz _autocomplete z pewnym AJAX_. W takim przypadku wyskakujące okienko pojawi się, gdy (i) wpisałeś znaki minLength (ii) opóźnienie milisekund od ostatniego naciśnięcia klawisza (iii) Wyniki Ajax zostały pobrane i przetworzone. Jesteś pewien, że to rozumiesz? –

Odpowiedz

30

search method powinno załatwić sprawę:

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

Fiddle

+1

Ah! OMG, użyłem: \t $ ('input # mainSearchBox'). Autouzupełnianie ("szukaj", "wartość demo"); Powinienem usunąć to ... – PolishHurricane

+0

haha, minLength jest tutaj kluczem. nie działa bez niego. –

4

Można użyć następującego skryptu, aby ręcznie włączyć autouzupełnianie:

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

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

Kod ten można znaleźć w źródle combobox example na stronie demo jquery autouzupełniania (linie 127-141).

Powiązane problemy