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