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