【问题标题】:Problem with jQuery AutocompletejQuery自动完成问题
【发布时间】:2010-12-04 07:56:14
【问题描述】:

我尝试集成 jQuery Autocomplete 插件 [1],但对我不起作用。这是我的代码:

$('#input').autocomplete(function(term) {
        var searchUrl = urlBase + 'tagging/autocomplete/?term=' + term;  
    $.getJSON(searchUrl, function(jsonData) {
        test = jsonData;
            console.log(test);
        });
    });

console.log 的输出如下所示:

[ "EBE", "EBE1", "EBE2"] 

对于输出,我使用 php 函数 json_encode()

echo json_encode ($words); 

谁能告诉我,我的代码有什么问题?插件页面中的虚拟数据正在工作....但当我尝试通过 URI 检索数据时却没有。

[1]http://docs.jquery.com/Plugins/Autocomplete

【问题讨论】:

    标签: jquery ajax json autocomplete plugins


    【解决方案1】:

    您错误地将函数作为第一个参数传递给autocomplete。方法签名是:

    autocomplete( url or data, options );
    

    你正在做:

    autocomplete(function(term) {
    

    取而代之的是,将您的 url 作为第一个参数传递,并修改您的服务器代码以读取自动附加的 'q' 参数(它表示 term 或绑定输入元素中的字符串):

    $('#input').autocomplete('tagging/autocomplete/', {
         formatItem: function(data, i, n, value) {
             return "<font color='#3399CC'>" + value + "</font>";
         },
         formatResult: function(data,value) {
             return value;
         }
    }).result(function(event, data, formatted) {
        console.log(data);
    });
    

    手册说:

    对于远程自动完成,请指定一个 URL 到提供数据的资源。 然后插件请求数据 “q”参数包含当前 搜索值。

    我从未尝试将 json 返回到自动完成程序(我相信你可以),但以上假设从服务器返回的数据由换行符 "\n" 分隔(自动完成将这些数据转换为 LI)。

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 2013-01-22
      • 2016-05-31
      • 2011-10-08
      • 2011-11-16
      • 2017-06-19
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多