JQueryUI自动完成,外部文本文件作为数据源

时间:2013-03-19 08:17:55

标签: jquery jquery-ui jquery-ui-autocomplete

我在项目中使用JQuery Autocomplete。 我希望将此自动填充的来源设置为文本文件。

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

我如何将这些数据实现到JQuery自动完成中。 我正在尝试这个,但这不起作用。

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

如果有人可以帮助我,我很高兴。

1 个答案:

答案 0 :(得分:1)

jQueryUI自动填充需要属性valuelabel。因此url默认不起作用。因此,请尝试重命名这些属性,看看它是否有效。

如果您想要或需要使用其他属性,您可以根据原始属性编写自定义自动完成插件,仅覆盖基本方法。

例如(使用上面的labelurl):

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'
});

希望这有帮助。