2011-12-25 17 views
5

Pracowałem na zawsze na ten temat i przeszukałem wszystkie inne przykłady i nadal nie mogę tego zrozumieć, próbując użyć jquery ui autouzupełniania, po raz pierwszy próbuję umieścić to wszystko razem. Oto moje JS:jQuery autouzupełnianie zdalne źródło danych JSON nie wraca dane

$(document).ready(function() { 
$("#search-title").autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: "/include/autocomplete", 
      dataType: "json", 
      data: { 
         term: request.term  
        }, 
      success: function (data) { 
       response($.map(data.stuff, function (item) { 
        return { 
         label: item.name, 
         value: item.name 
        }; 
       })); 
      } 
     }); 
    }, 
    minLength: 2, 
    focus: function (event, ui) { 
     $(event.target).val(ui.item.label); 
     return false; 
    }, 
    select: function (event, ui) { 
     $(event.target).val(ui.item.label); 
     window.location = ui.item.value; 
     return false; 
    } 
}); 
}); 

checking out odpowiedź w Firebug, myślę, że jestem coraz prawidłowo sformatowany JSON tutaj:

{"stuff":[ {"label" : "Dragon", "value" : "http://site.com/animal/firebreathers"}] } 

Ale z jakiegoś powodu nie jest podpinania. Po trafieniu na minLength pod polem wyszukiwania otworzy się małe, puste pole, ale nic tam nie będzie.

AKTUALIZACJA: Po dodaniu "alert (element);" w wywołaniu odpowiedzi pojawia się okno z informacją "Strona at site.com mówi: Object Object" - czy to może być problem?

+0

Czy przedmiot nie jest przedmiotem? Czy próbowałeś uzyskać dostęp do parametrów w pozycji takiej jak item.value? –

+0

Dziękuję! dzięki tobie w końcu mam swoją odpowiedź. –

Odpowiedz

2

W końcu doszedłem do tego, dzięki temu komentarzowi podpowiedzi pod moim pytaniem.

W zamian, co ja skopiowane z witryny UI jQuery miałem:

label: item.name, 
value: item.name 

Zmiana że do:

label: item.label, 
value: item.value 

rozwiązać mój walce z jQuery. Nie mam pojęcia, czy to dobra praktyka, ale w końcu działa!

0

spróbuj użyć jsonp zamiast json w typie danych.

Powiązane problemy