jquery tagsinput和ui autocomplete:它们可以与预加载的源一起使用吗?

Ban*_*dan 5 jquery jquery-ui autocomplete jquery-ui-autocomplete jquery-tags-input

我有点麻烦.有taginput的工作代码,我知道如何使用jquery ui的自动完成功能.

代码示例

也不

autocomplete' :{
    'source': tags_array
}
Run Code Online (Sandbox Code Playgroud)

也不

$("#new_tags_tagsinput").autocomplete({source: tags_array});
Run Code Online (Sandbox Code Playgroud)

似乎工作.

tagsinput站点上有一个例子,它需要自动完成URL,但我想使用加载的数组,就像在自动完成示例上一样.我尝试了不同的选择,没有人工作.有这样的方式吗?

rai*_*7ow 10

像这样初始化它:

var tags_array = ["lorem", "ipsum", "dolar", "sit", "amet"];
$("#new_tags").tagsInput({
    'defaultText':'add...',
    'height':'100px',
    'width':'300px',
    'autocomplete_url': '',
    'autocomplete' :{
        'source': tags_array
    }
});
Run Code Online (Sandbox Code Playgroud)

JSFiddle.

解释:首先,当您使用该标记数组作为源时,不需要保持相同的结构(即逗号分隔的字符串) - 从一开始就更容易使用普通数组.

其次,正如插件的源代码所示,autocomplete_url设置是否真正定义是否autocomplete将被利用:

if (settings.autocomplete_url != undefined) {
  autocomplete_options = {source: settings.autocomplete_url};
  for (attrname in settings.autocomplete) {
    autocomplete_options[attrname] = settings.autocomplete[attrname];
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

换句话说,您需要指定除了nullundefinedautocomplete_urlparam 之外的其他内容,以使其使用该jQuery UI插件.实际上,该插件检查该参数类型并相应地设置autocomplete源选项可能是个好主意.