2010-08-03 11 views
7

Wyzwalany, gdy element jest wybrany z menu; ui.item odnosi się do wybranego elementu. Domyślną akcją wyboru jest zastąpienie wartości pola tekstowego wartością wybranego elementu. Anulowanie tego zdarzenia zapobiega aktualizacji wartości, ale nie uniemożliwia zamknięcia menu.sposób zapobiegania domyślnemu zdarzeniu wybierania w jquery autouzupełniania

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     event.preventDefault(); 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
    } 
}); 
+0

czy kiedykolwiek rozwiązać? –

Odpowiedz

-1

za pomocą tego parametru selectFirst false

+0

nie działa. przepraszam – Trip

6

wiem, że to jest bardzo stare pytanie, ale ja po prostu natknął się na problem. Odpowiedź dla mnie jest umieszczenie event.preventDefault(); na koniec wybierz metodę jak ta:

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
     event.preventDefault(); // <---- I moved! 
    } 
}); 

dla mnie, jeśli event.preventDefault(); jest umieszczany na początku funkcji, wówczas domyślnym zdarzenie nie ognia, a reszta funkcji nie działa. Jeśli zostanie przeniesiony na koniec, działa zgodnie z oczekiwaniami. Mam nadzieję, że to pomoże komuś innemu.

+0

Nie działa dla mnie z ostatnim autouzupełnieniem. :( – user706420

0

To jest trochę hack, który pracował dla mnie: W moim przypadku wybierając wpis w rozwijanym (albo przez kliknięcie myszką lub za pomocą klawiszy strzałek, aby podświetlić i naciśnięcie ENTER), użyłem value do skonstruowania URL, a następnie wysyłając do niego przeglądarkę, ale nadal jest kopiowana do pola wyszukiwania. Żadna z odpowiedzi, które próbowałem, nie zadziałała, aby temu zapobiec. Tak aby zatrzymać value są wyświetlane w polu wyszukiwania, zrobiłem value taki sam jak label w moim JSON i dodaje się dodatkowe pole code że moja select obsługi zdarzeń wykorzystuje do skonstruowania URL mi potrzeba:

$("#autocomplete").autocomplete({ 
    source: "http://www.example.com/search", 
    minlength: 2, 
    select: function(event, ui) { 
    // go to page on ENTER 
    window.location.href = "/page/" + ui.item.code; 
    } 
}); 
Powiązane problemy