2

我正在使用Jquery UI的自動完成,並且我可以看到正確的JSON數據在Firebug中返回。然而,沒有東西回到文本框。使用JQuery UI顯示自動完成不顯示結果

我的javascript:

$(function() { 
     function log(message) { 
      $("<div/>").text(message).prependTo("#log"); 

     } 

     $("#tags").autocomplete({ 
     source: function(request, response){ 
        $.ajax ({ 
       url: "/projectlist", 
           dataType: "json", 
           data: {style: "full", maxRows: 12, term: request.term} 
          }); 
              } 

    }) 
}); 

你可以看到,從片段被返回的JSON數據。但是結果表中沒有顯示任何內容。看起來應該像JQuery的自動完成例如JQuery Autocomplete

Snippet of what browser returns in firebug

回答

0

顯示Noyhing因爲您返回什麼,我想:你必須加測e成功功能,你的Ajax調用(我加了一個成功響應的例子,如果你能告訴我們你的JSON是如何tructured我可以幫助你更好地在任何情況下,你必須返回一個對象數組,每個對象應該有一個名爲「標籤」和一個名爲「值」屬性:

$("#tags").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url: "/projectlist", 
      dataType: "json", 
      data: { 
       style: "full", 
       maxRows: 12, 
       term: request.term 
      }, 
      success: function(data) { 
       var results = []; 
       $.each(data, function(i, item) { 
        var itemToAdd = { 
         value: item, 
         label: item 
        }; 
        results.push(itemToAdd); 
       }); 
       return response(results); 

      } 
     }); 
    } 
}); 

我在這裏設置了一個小提琴:http://jsfiddle.net/nicolapeluchetti/pRzTy/(設想'data'是json返回)

+0

'def project_list list = Project.all.map {| i | i.project_name} arr = [] .concat(list.sort {| a,b | a [0] <=> b [0]})。to_json render:json => arr end' – David

+0

發佈瀏覽器返回的內容 –

+0

我修改了帖子 – David