2012-04-06 55 views
1

我试图显示自动完成结果。遍历数据以显示自动完成结果

这里是我的脚本,当我使用GET请求

例如,当我查询它“FB”

它返回我下面的数据

"fb" 
"fbi" 
"fbi most wanted" 
"fbi jobs" 
"fb banners" 
"fbook" 
"fb covers" 
"fbanners" 
"fbisd" 
"fbop" 

查询返回的数据这里是代码为自动完成插件

 $("#query").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "q.php", 
       dataType: "json", 
       data: { 
        "q" : request.term 
       }, 
       success: function(data) { 
       response(data[1]) 
       } 
      }); 
     }, 
     minLength: 2 
    }); 

它不显示m e任何结果。谁能告诉我我哪里错了!

回答

0
$("#query").autocomplete({ 
     source: "q.php", 
     minLength: 2 
    }).data("autocomplete")._renderItem = function (ul, item) { 
      return $("<li></li>") 
      .append("<a>" + item+ "</a>") 
      .appendTo(ul); 
     }; 
0

如果您使用jQuery Autocomplete插件,为什么您会过度复杂并自行渲染它?

只要定义源脚本,并提供了一个很好格式化的JSON响应,自动完成模块需要它:

预期的数据格式

从本地数据的数据,URL或回调可以进来两种变体:

字符串Array: [ “选择1”, “选择2”]

与标签和值的属性的对象Array: [{标签: “选择1”,值: “VALUE1”},...]

source: "query.php"; 

让插件做休息。

阅读API:jQuery Autocomplete plugin overview

如果你想要做别的什么,只是注册和捕捉事件。