2010-07-26 29 views
11

Próbuję zasymulować wyszukiwanie w serwisie Autouzupełnianie YouTube.Wyszukiwanie za pomocą autouzupełniania Jquery

Nie mogę znaleźć opcji, gdy użytkownik kliknie na pozycję na liście i automatycznie przejdzie do wyszukiwania wspomnianego przedmiotu.

Moje kodowania jest następująca:

<script type="text/javascript"> 
    var data = ['array1','array2']; 
    $(document).ready(function() { 
    $j("input#directorySearch").autocomplete(data); 
    }); 
</script> 

Powyższy kod pozwoli użytkownikowi na kliknij z wymienionych pozycji, jednak będzie ona wypełnić pole wyszukiwarki zamiast automatycznego wyszukiwania.

Odpowiedz

21

Potrzebowałem podobnego zachowania, używając domyślnego widgetu autouzupełniania jQueryui. Sztuką jest użycie zdarzenia "wybierz", ale przesłanie go przez selekcjonera nie przyniesie pożądanych rezultatów, ponieważ dane wejściowe nie będą jeszcze wypełnione.

Następujący kod działa dla mnie:

$("input#searchbox").autocomplete({ 
    source: autocomplete, 
    select: function(event, ui) { 
    $("input#searchbox").val(ui.item.value); 
    $("#searchform").submit(); 
    } 
}) 

(w powyższym przykładzie, „autouzupełnianie” to adres, który wskazuje na źródła zakończenia)

Gdzie wejście # SearchBox jest rzeczywista pozycja wejście i #searchform jest jego forma dominująca. Zasadniczo, musisz wypełnić dane wejściowe przed wysłaniem siebie.

+0

Jak to zrobić w asp.net proszę? – mutiemule

0

nie można po prostu zrobić coś takiego:

$('.autocomplete ul li').live("click", function() { 
    $("form#search").submit(); 
}); 

Jeżeli zdarzenie kliknięcie na liście opcji powoduje formą przedstawienia do formularza wyszukiwania ??

+0

Właśnie wróciłem wypróbowania tego rozwiązania, ale zdaje się, formularz nie przedstawi. Wygląda na to, że istnieje inny słuchacz, ponieważ gdy element zostanie kliknięty, najpierw wypełni formularz wejściowy. – Anraiki

0

Początkowo używałem coś prostego, takich jak Bassistance.de

I przeniósł się do korzystania z innej biblioteki przez devBridge

devBridge posiada opcję o nazwie „onSelect:” który pozwoli mi na auto-wysłać formularz.

0
$(function() { 
$("#search").autocomplete(
    { 
     source:'/search-terms.php', 
     focus: function(event, ui) { 
      $("input#search").val(ui.item.label); 
     }, 
     select: function(event, ui) { 

      $("#searchform button").click(); } 
    }) 
}); 

używam to działa dobrze :)

Powiązane problemy