2011-03-23 32 views
1

我在jQuery UI上的jQuery自動完成功能存在一些奇怪的問題。jQuery-UI Autocompelete在打字時沒有顯示結果

當我輸入輸入時,我得不到任何結果,如果我刪除了我輸入的所有內容,則會顯示自動完成結果。

此外,自動完成似乎沒有篩選匹配字符的結果。

我把代碼放在jsfiddle這裏。 http://jsfiddle.net/wqgjL/

這裏只用JSON對象


var accounts = $.parseJSON('[{"id":"217","aid":"c4ca4238a0b923820dcc509a6f75849b","system_id":"6c907867-f687-67a9-c342-00001fa54bc1","account_id":"","account_type":"Other Income","account_name":"Proceeds from sale of assets","account_status":"Enabled"},{"id":"218","aid":"c4ca4238a0b923820dcc509a6f75849b","system_id":"542dd9ad-914c-2b69-ca3f-0000413ef162","account_id":"","account_type":"","account_name":"Other Expenses","account_status":"Enabled"},{"id":"211","aid":"c4ca4238a0b923820dcc509a6f75849b","system_id":"638336e9-3bdf-4329-7a15-000058ba48f2","account_id":"","account_type":"Expense","account_name":"Taxes","account_status":"Enabled"}]'); 

//alert(data); 
$("#accountSearch").autocomplete({ 
    minLength: 0, 
    source: accounts, 
    focus: function(event, ui) { 
     $("#accountSearch").val(ui.item.account_name); 
     return false; 
    }, 
    select: function(event, ui) { 
     $("#accountSearch").val(ui.item.account_name); 
     $("#jeAccountID").val(ui.item.system_id); 

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

請確保你的json對象中有標籤和值作爲合適的東西,那些需要自動完成才能正常工作... – Dalen 2011-03-23 21:25:03

+0

我可以指定json數據的任何部分作爲標籤和值嗎?或者我必須將其聲明爲標籤和價值? – Peter 2011-03-23 21:33:24

+0

在你的情況下,我會打電話給id-> value和account_name->標籤 – Dalen 2011-03-23 21:36:22

回答

1

有標籤的值作爲JSON屬性的一部分代碼有很大幫助與自動完成的,事實上他們是該控件默認屬性。 這是你自動完成的工作示例:

http://jsfiddle.net/GCur5/

我剛剛更改了JSON的system_idvaluelabelaccount_name

完成此操作後,您的一些自動填充函數變得微不足道,以至於我刪除了它們。

+0

現在有道理..和它的工作。謝謝! – Peter 2011-03-23 22:07:11