Как разрешить запятую в фильтре ввода тегов bootstrap?

Я использую ниже код для отправки тегов с помощью фильтра ввода тегов bootstrap, я хочу разрешить запятая в теги. Пожалуйста помочь.

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

2 ответов


редактировать

со времени написания оригинала похоже, что для этого существуют два варианта: delimiter и delimiterRegex. Так что вы должны быть в состоянии сделать .tagsinput({ delimiter: '|' }) или .tagsinput({ delimiterRegex: /\s+/ }). по умолчанию по-прежнему ,.

оригинальное сообщение

для этого нет возможности, поэтому вам придется изменить код для плагина. строка 87 bootstrap-tagsinput.js разбивает на , символ. Ты можешь изменить это. быть другим персонажем, как ; или |. Если вы хотите сделать его более расширяемым, вы можете добавить splitOn: ',' to 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);
  // ...
}

вы хотите продолжать использовать confirmKeys: [ 13 ], и вы, вероятно, захотите использовать <select multiple></select> вместо Ан <input /> так что вы получаете массив вместо строки, разделенной запятыми, когда вы делаете $(".tagsinput").val();

здесь пример.


добавьте теги в качестве объектов вместо строк, например:

el.tagsinput({
  itemValue: 'value',
  itemText: 'text',
  maxTags: 15,
  trimValue: false,
  //...
});

el.tagsinput('add', { "value": 1 , "text": "Tag 1," });
el.tagsinput('add', { "value": 2 , "text": "Tag 2," });
//...