2015-12-24 72 views
2

我不能得到默认的引导,TagsInput confirmKeys,即enter = 13comma = 188,工作开箱。无论有没有Typeahead.js都是如此。确认键允许您通过单击该键创建标签。引导-TagsInput confirmKeys不工作

我认为问题是标签是否是字符串或对象。如果您查看the Tagsinput demo,则“Typeahead”示例允许使用默认的confirmKeys,entercomma创建标签,但在其下方的“Objects as Tags”示例没有。

任何想法如何使confirmKeys与对象标签一起工作?

回答

2

我不得不编辑Bootstrap-tagsinput库来完成这项工作。

这里是我加/库注释掉:在想要利用这个库修改我将此之一的codebase

//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

感谢蒂姆,你的改变进入了,但它目前没有记录。 –

+0

从头开始,它们一旦被合并就被覆盖,除非我是个假人,并且无法使其工作。 :(会很好。 –