如何在bootstrap标签输入过滤器中允许逗号?

TIG*_*GER 8 twitter-bootstrap bootstrap-tags-input

我使用下面的代码使用bootstrap标签输入过滤器提交标签,我想在标签中允许使用逗号.请帮忙.

$('.tagsinput').tagsinput({
        maxTags: 15,
        trimValue: true,
        confirmKeys: [13],
        allowDuplicates: false,
        onTagExists: function(item, $tag) {
            alert('Tag already exists')
            $tag.hide.fadeIn();
          }
    });
Run Code Online (Sandbox Code Playgroud)

red*_*bmk 9

编辑

从原始写作的时间开始,现在看起来有两个选项:delimiterdelimiterRegex.所以你应该可以做.tagsinput({ delimiter: '|' }).tagsinput({ delimiterRegex: /\s+/ }).默认仍然是,.

原帖

没有选项,所以你必须更改插件的代码.bootstrap-tagsinput.js的第87行在,字符上分裂.您可以将其更改为不同的角色,例如;|.如果你想让它更可扩展你可以添加splitOn: ','defaultOptions,然后,改变线87是var items = item.split(self.options.splitOn);.您也可以添加self.options.splitOn &&if上面的语句中,这样可以避免在没有任何内容拆分时尝试拆分.

因此,代码更改需要如下所示:

// Line 4
var defaultOptions = {
    splitOn: ','
    // ...
};

// Line 86
if (self.options.splitOn && typeof item === "string" && this.$element[0].tagName === 'INPUT') {
  var items = item.split(self.options.splitOn);
  // ...
}
Run Code Online (Sandbox Code Playgroud)

你会想要继续使用confirmKeys: [ 13 ],你可能想要使用a <select multiple></select>而不是一个,<input />这样你就可以得到一个数组,而不是逗号分隔的字符串$(".tagsinput").val();

这是一个例子.