2015-12-24 3 views
2

я не могу получить по умолчанию Bootstrap-TagsInput confirmKeys, а именно enter = 13 или comma = 188, чтобы работать из коробки. Это верно с Typeahead.js. Клавиши подтверждения позволяют создать тег, щелкнув этот ключ.Bootstrap-TagsInput confirmKeys не работают

Я думаю, проблема в том, являются ли теги строками или объектами. Если вы посмотрите на the Tagsinput demo, пример «Typeahead» позволяет создавать теги по умолчанию confirmKeys, enter или comma, но пример «Объекты как теги» прямо под ним нет.

Любая идея, как сделать confirmKeys работать с тегами объекта?

ответ

2

Мне пришлось отредактировать библиотеку Bootstrap-tagsinput, чтобы сделать эту работу.

Вот что я добавил/закомментирована в библиотеке:

//self.options.freeInput = false; //notice commented out 

//... (lots of lines between) 

if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) { 
    // Only attempt to add a tag if there is data in the field 

    if (text.length !== 0) { 
     //<<<<< BEGIN code block added 
     //self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text); //notice commented out 

     var item2 = self.$input.val(); 
     if (self.objectItems) { 
     var beforeFreeInputItemAdd = $.Event('beforeFreeInputItemAdd', { item: item2, cancel: true }); 
     self.$element.trigger(beforeFreeInputItemAdd); 
     if (beforeFreeInputItemAdd.cancel) 
      return; 

     item2 = beforeFreeInputItemAdd.item; 
     } 

     self.add(item2); 
     self.$input.val(''); 
     // $input.val(''); //>>>>>> END code block added 
    } 

} 

А потом где-нибудь в своем коде, который хочет использовать эту библиотеку модификации я добавил следующее:

var id_increment = 1; 
$("#my-tagsinput-field").on('beforeFreeInputItemAdd', function(event) { 

    event.item = {'name': event.item, 'id': 'new-'+id_increment}; 
    event.cancel = false; 
    id_increment++; 

}); 
+0

Спасибо Tim , ваши изменения внесли его, но в настоящее время они не документированы. –

+0

Поцарапайте, что они были перезаписаны после того, как они слились, если только я не манекен и не могу заставить его работать. :(Было бы здорово. –