This is a question regarding tag-it jquery component. Comma field delimiter works fine when I enter the tags via keyboard, but when I paste tags with a comma(for example - one, two, three) from clipboard it looks like a one single tag with a commas inside the tag. Is it possible to configure tag-it in order to recognize different(separated) tags in the scenario described above ?
问问题
1093 次
2 回答
4
您可以使用该preprocessTag
功能检查给定的标签,并最终将其拆分为一些标签,并使用createTag
.
代码:
var $tagInp = $("#tagInp");
$tagInp.tagit({
allowSpaces: true,
preprocessTag: function (val) {
if (!val) {
return '';
}
var values = val.split(",");
if (values.length > 1) {
for (var i = 0; i < values.length; i++) {
$tagInp.tagit("createTag", values[i]);
}
return ''
} else {
return val
}
}
});
演示:http: //jsfiddle.net/IrvinDominin/GL6VK/
编辑从选项中得到的分隔符
您可以使用以下方法获取分隔符:
$tagInp.tagit('option','singleFieldDelimiter')
代码:
var $tagInp = $("#tagInp");
$tagInp.tagit({
allowSpaces: true,
preprocessTag: function (val) {
if (!val) {
return '';
}
var values = val.split($tagInp.tagit('option','singleFieldDelimiter'));
if (values.length > 1) {
for (var i = 0; i < values.length; i++) {
$tagInp.tagit("createTag", values[i]);
}
return ''
} else {
return val
}
}
});
演示:http: //jsfiddle.net/IrvinDominin/GL6VK/2/
于 2013-09-08T13:35:52.120 回答
2
您可以编辑tag-it.js库以获得永久解决方案。试试这个在选项中添加拆分模式
splitPattern : ',',
现在,在 keydown 事件函数中替换that.createTag(that._cleanedInput())
为
var tags = that._cleanedInput().split(that.options.splitPattern);
if (tags.length > 1) {
tags.forEach(function(tag) {
that.createTag(tag);
});
event.preventDefault();
} else {
that.createTag(that._cleanedInput());
}
于 2016-09-29T11:03:28.473 回答