2012-06-23 21 views
6

Używam popularnej wtyczki Autocomplete JQuery poniżej.rozwijacz autouzupełniania jquery na wejściu: focus

http://jqueryui.com/demos/autocomplete/

Obecnie po wpisaniu frazy pojawia się spadek w dół, ale po kliknięciu dala ukrywa. Jest okej. Jednak jedynym sposobem na przywrócenie listy rozwijanej jest kliknięcie pola wprowadzania i wpisanie dalszych znaków lub naciśnięcie klawisza keydown.

Jakieś pomysły, jak wywołać listę wyników, gdy użytkownik kliknie w polu wprowadzania? Próbowałem wyzwolić fokus zdarzenia dla pola wejściowego, ale to nie działa. Muszę jakoś ręcznie wywołać zdarzenie rozwijane autouzupełniania po ustawieniu pola wejściowego. Dzięki.

Odpowiedz

24

demo Pracahttp://jsfiddle.net/CNYCS/

Fajne; więc wszystko, co musisz zrobić, to bind fokusowe zdarzenie z autouzupełnianiem, reszta `autocomplete przejmie stamtąd jak widać w demo.

pomocna Link: http://forum.jquery.com/topic/how-to-bind-focus-input-to-trigger-autocomplete&http://docs.jquery.com/UI/Autocomplete#method-search

Nadzieja to pomaga,

kod Reszta jest w jsfiddle.

kod

$("#tags").autocomplete({ 
     source: availableTags, 
     minLength:0 
    }).bind('focus', function(){ $(this).autocomplete("search"); }); 
+1

Dzięki temu działa pięknie – leejmurphy

+1

Awesome! znalazłem to z google, dokładnie to, czego potrzebuję :) – Tallboy

+1

Słodki! Dokładnie to, czego potrzebuję! Działa jak marzenie! –

2

Nie ma oczywistego sposobu, aby to zrobić zgodnie z dokumentem. Ale można spróbować z focus (lub click lub keyup) zdarzenia na autocomplete włączona textbox:

$('#autocomplete').trigger("keyup"); 

lub

$('#autocomplete').trigger("focus"); 

lub

$('#autocomplete').trigger("click"); 

Jak @Tats_innit wspomniano kod , po tym musisz po prostu dodać linię

$('#tags').trigger("focus"); // as @Tats_innit's solution bind focus 
          // so you need to trigger focus 

DEMO

+0

++ 1 znowu mężczyzna ':)' glad te dni nie jestem jinx-ing rozwiązanie z Ciebie: P diff demo poniżej OP byle +! –

+0

Dzięki, kombinacja dwóch pracowała dla mnie. – leejmurphy

Powiązane problemy