2009-05-05 10 views
12

Mam pole autouzupełniania i zastanawiam się, jak mogę go użyć dla wielu słów? Kiedy wpiszesz pierwsze słowo, działa idealnie, ale kiedy spiszę i wpisz drugie słowo, wysyła ono dwa słowa z powrotem do serwera i oczywiście wyniki są błędne!Jak korzystać z autouzupełniania JQuery dla wielu słów

np. Po wpisaniu tych dwóch słów,

„Java javascript”

pierwsze słowo „Java”, autouzupełnianie działa dobrze, ciągnąć listę.

Ale gdy spacji i wpisz javascript, autouzupełnianie wysyła "Java + javascript" do mojej funkcji ajax.

Wszelkie pomysły, jak to naprawić?

Odpowiedz

10

Wygląda na to, że nie możesz, wbudowana implementacja go nie obsługuje - możesz zobaczyć w powyższym linku: "nie jest częścią stabilnego wydania lub dystrybucji".

Jednak Pobrałem i korzystać z wersji zewnętrznej, dostępny here:

http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

to trochę większy, ale korzystanie jest dokładnie taka sama, nie trzeba nic zmieniać, wielokrotnego wyboru, dodać do opcji {wielokrotność: true}

Aktualizacja

jQueryUI został zaktualizowany do najnowszej versi ons czyniąc tę ​​odpowiedź przestarzałą. Uptodate przykład można znaleźć tutaj

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

+0

Gitara basowa została uznana za przestarzałą, oto przewodnik migracji, aby użyć nowego autouzupełniania jQuery http: //www.learningjquery.com/2010/06/autocomplete-migration-guide – bizl

+0

Ta odpowiedź jest teraz niepoprawna - usuń. Odpowiedź Samsa pokazuje prawidłowe rozwiązanie. –

7
$("#tagnames").autocomplete("/tags/filter", { 
     max: 6, 
     highlightItem: true, 
     multiple: true, 
     multipleSeparator: " ", 
    }) 

Aby włączyć auto kompletne dla wielu słów należy ustawić opcje wielokrotny: true i multipleSeparator: ""

+0

Nie mogę znaleźć opcji "multiple" i "multipleSeparator" w dokumentacji: http://docs.jquery.com/UI/Autocomplete Czy możesz rozwinąć? – Luke

+0

Wspomniał o wtyczce http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/, a nie jqueryui –

0

Dodajesz komentarz dla pełniejszej odpowiedzi, powiedzmy, że masz dwie możliwości wyboru ze wspólnego przedrostka:

IP5, IP5 baterii

jeśli użytkownik wpisze w polu tekstowym ip5, pierwszy wybór powyżej zostanie automatycznie wybrany bez pozwolenia użytkownikowi na pisanie w drugim wyborze, aby uniknąć tego zachowania, upewnij się, że korzystasz z opcji

triggerSelectOnValidInput: true,

Powiązane problemy