从bootstrap-tag库

时间:2015-09-26 16:32:45

标签: javascript twitter-bootstrap bootstrap-tags-input

所以我使用的是一个名为bootstrap-tag的库(不要与bootstrap-tags< -plural混淆)。这是它的存储库:https://github.com/fdeschenes/bootstrap-tag

我正在尝试构建标记从其他输入字段中获取的值,然后单击按钮,将该标记添加到标记输入字段。

enter image description here

我首先尝试查看是否可以访问元素的原型并从那里获取add方法。但我只能获得jquery元素的原型。我没有包含代码的唯一原因是因为我使用Ember.js并且不希望这可能使我遇到的实际问题复杂化。如果包含代码对我有帮助,请告诉我,我会将其添加到问题中。

标签输入字段在键入内部时可以正常工作。如何从字段外部构建值并添加标记?

我想要使用的add方法也在第三方库的这一行: https://github.com/fdeschenes/bootstrap-tag/blob/master/js/bootstrap-tag.js#L136

1 个答案:

答案 0 :(得分:1)

此库不提供此API .. 但你可以轻松破解它;)

<input id="test-input" />

var tags = new $.fn.tag.Constructor(document.getElementById('test-input'), {});
tags.add('Hack');
tags.add('it');
tags.add('easily');

或者你可以这样做:

var tagsElement = $('.tags-input').tag(options);

addTagToElement(tagsElement, 'Whatever');   

function addTagToElement(el, newTag) {
   var e = $.Event('keydown');
   e.keyCode = 13;
   el.next().val(newTag);
   el.next().trigger(e)
}

这个库在第一个定义的旁边创建一个占位符输入,并且甚至可以听到keydown ..所以addTagToElement片段只是模拟了这个...