1

我在一个项目中使用 JQuery 自动完成。我希望这个自动完成的来源设置为一个文本文件。

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

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

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

很高兴有人可以帮助我。

4

1 回答 1

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

希望这可以帮助。

于 2013-03-19T08:30:49.407 回答