2011-12-25 31 views
5

Bu konuda sonsuza kadar çalıştım ve diğer tüm örneklerde aradım ve yine de bunu anlamaya çalışmıyorum, jquery ui autocomplete kullanmaya çalışıyorum, ilk kez denemeye çalışıyorum hepsi bu arada. İşte benim JS geçerli:jQuery autocomplete uzaktan JSON veri kaynağı döndürülemiyor

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

Ama nedense o kadar çengel değil:

$(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; 
    } 
}); 
}); 

Firebug Yanıtı gözden geçiriyorum, ben burada düzgün biçimlendirilmiş JSON alıyorum düşünüyorum. MinLength'a bastıktan sonra, arama alanının altında küçük, boş bir kutu açılır, ancak hiçbir şey orada olmayacaktır.

UPDATE: "Uyarı (madde)" eklediğimde; yanıt çağrısında, "site.com'daki sayfa diyor ki: object Object" yazan bir pencere alıyorum - sorun bu olabilir mi?

+0

Öğe bir nesne değil mi? Item.value gibi öğede erişim parametrelerini denediniz mi? –

+0

Teşekkür ederim! teşekkürler, sonunda cevabım var. –

cevap

2

Sonunda düşündüm ki, bu ipucu yorumumun altında. Ben jQuery UI sitesinden kopyalanmış karşılığında,

i vardı: jQuery ile

label: item.label, 
value: item.value 

çözüldü benim mücadelenin:

label: item.name, 
value: item.name 

o değiştirme. Bunun iyi bir uygulama olup olmadığı hakkında hiçbir fikrim yok, ama sonunda işe yarıyor!

0

datype içinde jsonp yerine jsonp kullanmayı deneyin.