2011-02-04 7 views
5

Chciałem użyć widżetu autouzupełniania, aby umożliwić komuś wybór pracownika, wpisując nazwisko pracownika w polu tekstowym, ale chcę, aby formularz opublikował identyfikator pracownika, a nie nazwisko pracownika. Podałem dane, tj. nazwiska pracowników jako źródło. etykieta i wartość w .js jest taka sama jak źródło, pod warunkiem, że mogę oddzielić nazwisko i identyfikator pracownika.jak ustawić identyfikator w jquery ui Źródło zdarzenia

$("#txtEmployeeName").autocomplete({ 
        var suggestions = [] ; 
        //define callback to format results 
        source: function(req, add){ 
        ajax call...     
        on success: function(data) 
        {     
         suggestions = data.split('|'); 
         add(suggestions); 
        } 
        select: function(e, ui) { 
        //create formatted friend 
        var friend = ui.item.value, 
         span = $("<span>").text(friend) 
         $("#"+ $(this).attr("id")).val(span); 
        } 

       }); 

Odpowiedz

8

Musisz przekazać obiekt Json do źródła własności.

Następnie twój ui.item jest obiektem, o Id, wartości, wszystko, co chcesz.

$(function() {     
    var students = [{id: 1322,label: "student 1"},{id: 2,label: "Student 2"}]; 
    $("#search-student").autocomplete({ 
     source: students, 
     minLength: 2, 
     select: function(event, ui) { 
       window.location.href="/?studentId=" + ui.item.id; 
     }     
    });    
}); 

Spójrz na jQuery getJSON: http://api.jquery.com/jQuery.getJSON/ uzyskać json za pośrednictwem AJAX.

+0

Dzięki, że działa dobrze .... – deepu