2013-03-19 35 views
1

我在項目中使用JQuery自動完成。 我希望這個自動完成的源代碼被設置爲一個文本文件。將外部文本文件作爲數據源的JQueryUI自動完成

內容的text.txt文件 [{ label:"AAA", url:""}, { label:"BBB", url:""}, { label:"CCC", url:""}, ]

如何我可以以一個jQuery自動完成實施這一數據。 我正在嘗試這個,但這不起作用。

$("#textbox").autocomplete({ source: 'text.txt', }); 其中textbox是我的文本框的id,text.txt是文本文件。

很高興如果有人能幫助我。

回答

1

jQueryUI的自動完成期望的屬性valuelabel。所以url在默認情況下不起作用。所以嘗試重新命名這些屬性並查看它是否有效。

如果你想要或需要使用其他屬性,可以在原有基礎上編寫自定義自動完成插件,只覆蓋了基本方法。

例如(使用label及以上url):

if (typeof ($.ui.autocomplete) != 'undefined') { 
    $.widget('custom.autocompleteCustom', $.ui.autocomplete, { 
     _renderItem: function (ul, item) { 
      // Customize the <li> below to influence what is actually shown 
      return $('<li>') 
        .append($('<a>').html(item.label + '<br>' + item.url)) 
        .appendTo(ul); 
     } 
    }); 
} 

現在,您已經註冊了一個名爲autocompleteCustom插件。你可以這樣使用它:

$('#someElement').autocompleteCustom({ 
    minLength: 2, 
    select: function (event, ui) { 
     // You can access ui.item.label, ui.item.url here 
    }, 
    source: '/some/url' 
}); 

希望這會有所幫助。

+0

如果我使用上面的文本文件作爲內嵌數據,那麼它完美的工作。 我沒有與URL p任何問題[roperty..but的事情是,我不能夠從外部文本文件 – Hitesh 2013-03-19 08:40:16

+0

閱讀你的意思與「外部」 txt文件,這是另一個域? – Knelis 2013-03-19 08:43:46

+0

不,我的意思是從本地文本文件中讀取 – Hitesh 2013-03-19 08:45:59