2011-06-21 17 views
17

Zastanawiam się, jak pobrać wartość tekstu wybranego elementu na autouzupełnianie jquery.Autouzupełnianie jquery otrzymujesz zaznaczony tekst pozycji

I zainicjowane jquery następujące:

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: function (event, ui) { 
      AutoCompleteSelectHandler(event, ui) 
     } 
    }); 
}); 

I utworzeniu AutoCompleteSelectHandler funkcyjne (zdarzenie, Ul) {}.

Wewnątrz tej funkcji potrzebuję dodatkowej obsługi do podawania danych do odpowiednich pól tekstowych, ale nie mogę dowiedzieć się, jak pobrać wartość tekstową wybranego elementu.

Zrobiłem trochę google i wypróbowałem przykłady, ale wydaje mi się, że nie działa.

Każda pomoc będzie doceniana.

Dziękuję bardzo dużo.

+1

Jeśli dodawać znaczników HTML i dokładnie to, co trzeba zrobić, możemy pomóc –

Odpowiedz

30

Parametr ui ma właściwość z zaznaczonego tekstu

function AutoCompleteSelectHandler(event, ui) 
{    
    var selectedObj = ui.item;    
    alert(selectedObj.value); 
} 
item

źródło: http://jqueryui.com/demos/autocomplete/#event-select przejdź do zakładki "Zdarzenia", a następnie zdarzenie "Wybierz"

+0

dziękuję bardzo !!! ratownik życia! – rlee923

+0

Jaka byłaby pełna implementacja tego? –

1

Wystarczy pobrać wartości z wejścia w taki sam sposób, w jaki będzie, jeśli użytkownik wpisał go w samym sobą:

$('input#autocomplete').val() 
+2

to daje co użytkownik wpisał, a nie wybraną wartość. – rlee923

+0

Może źle zrozumiałem twoje pytanie? Myślałem, że szukasz opcji wybranej przez użytkownika przy autouzupełnianiu. Po wybraniu wstawia go do wejścia i można go odzyskać w taki sam sposób, jak w przypadku wpisania przez użytkownika. – kinakuta

4

Nie musisz stosować anonimowej funkcji jako wrap, możesz bezpośrednio przekazać funkcję ref.

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: AutoCompleteSelectHandler 
    }); 
}); 

ramach tej metody, można albo dostęp this lub event.target uzyskać bieżącą wartość, obie wartości są przedstawieniu element wejściowy:

function AutoCompleteSelectHandler(event, ui) { 
    alert($(event.target).val()); 
    alert($(this).val()); 

    // alert(this.value); 
} 
+0

dlaczego po prostu nie pobrać go z parametru "ui", który jest przekazywany do metody jak w mojej odpowiedzi, jak napisano w dokumentacji jquery ui? – GeertvdC

+0

aww Nie wiedziałem, że nie musisz podawać parametru. Dzięki za wskazówkę! – rlee923

13
// list of clients 
     $("#client").autocomplete({ 
     source: "lib/getClientList.php", 
     minLength: 2, 
     select: function(event, ui) { 
      alert(ui.item.value); 
      } 
     }) 

;

ui.item.value jest odniesienia, który wykorzystuje jQuery do przypisania wartości do wejścia

+0

Czy można uzyskać indeks wybranego elementu? – FrenkyB

Powiązane problemy