1

我已经获得了自动完成功能,但有错误。我将如何正确格式化响应代码?
响应代码如何使用Codeigniter获取Jquery-ui自动完成以显示响应文本

{ 
    label: "Label 1", 
    value: "27" 
}, 
{ 
    label: "Label 2", 
    value: "18" 
}, 
{ 
    label: "Dave", 
    value: "25" 
}, 
{ 
    label: "Jacqui Potatoes", 
    value: "17" 
}

的Javascript

$("#account_search .ac_input").autocomplete({ 

    minLength: 0, 
    source: base_url + "accounts/ac_results/account_name",  
    dataType: "json", 
    type: "POST", 

}).data("autocomplete")._renderItem = function(ul, item) { 

    .data("item.autocomplete", item) 
    .append("<a>" + item.label + "<br>" + item.desc + "</a>") 
    .appendTo(ul); 
    return $("<li></li>"); 
}; 

我觉得.data()功能的问题,尽管它正在以某种方式。我想同时访问标签和值

回答

0

你必须在_renderItem功能的错误(应该叫新创建<li></li>.data):

.data("autocomplete")._renderItem = function(ul, item) { 
    return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append("<a>" + item.label + "<br>" + item.value + "</a>") 
     .appendTo(ul); 
}; 

我也取代item.desc里面也没有存在于您的JSON响应item.value

作为旁注,您可能根本不需要重写该函数。如果您想更改每个项目在建议列表中的外观方式,您只需要使用它。

此外,请确保删除选项对象中的额外逗号。此外,选择dataTypetype无效选项反正:

$("#account_search .ac_input").autocomplete({ 
    minLength: 0, 
    source: base_url + "accounts/ac_results/account_name" 
}); 

(本地数据源):http://jsfiddle.net/nG8Q4/

+0

当我使用此代码我得到的输入下没有结果,只有在响应文本FireBug – JPickup 2012-02-27 16:19:21

+0

我刚更新了答案。让我知道这是否有效。 – 2012-02-27 16:22:16

+0

不幸的是,这也不起作用。如果我在你的代码工作后添加一个额外的');'导致错误。我很困惑! – JPickup 2012-02-27 16:33:08