这是关于tag-it jquery组件的问题。 当我通过键盘输入标签时,逗号字段分隔符工作正常,但是当我从剪贴板粘贴带逗号的标签(例如 - 一,二,三)时,它看起来像一个标签内有逗号的单个标签。是否可以配置tag-it以识别上述场景中的不同(分离)标签?
答案 0 :(得分:3)
您可以使用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
}
}
});
答案 1 :(得分:2)
您可以编辑 tag-it.js 库以获得永久解决方案。 试试这个 在选项中添加拆分模式
splitPattern : ',',
现在,在keydown事件函数中用{/ 1>替换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());
}