我正在使用XOXCO的Jquery Tag插件。它工作得很好,但是当有人粘贴带有逗号的文本时,它不会将它们分开。我试过这个解决方案。 https://github.com/xoxco/jQuery-Tags-Input/issues/22 。但它会两次添加新的粘贴标签。有没有人使用这个插件并遇到同样的问题?
答案 0 :(得分:1)
根据他们在github上的代码,你可以尝试这个解决方法:
$('#input').on('paste',function() {
$(this).trigger('keypress');
});
答案 1 :(得分:1)
另一个简单的解决方案是
$('#tags').tagsInput({
'onAddTag': function(tag) {
//Remove all newlines
tag = tag.replace(/\n/g, '');
//Remove all spaces
tag = tag.replace(/\s/g, '');
//check if a comma is find inside var tag
if (tag.indexOf(',') > 0) {
$('#tags').importTags(tag);
};
}
});
瞧!
答案 2 :(得分:0)
这支持粘贴以逗号分隔的字符串
onAddTag: function(tag) {
var tags = tag.split(",");
if(tags.length > 1) {
$(this).removeTag(tag);
return false;
}
}
看起来有点奇怪,但是标签lib已经将逗号视为分隔符,因此它们只是简单地刷新。
答案 3 :(得分:0)
我发现Pit Digger的原因是双标签的初始问题。
$(e.target).val()
已添加了标签。添加+ ',' + e.tags
只会使代码加倍。在我的解决方案中,我注释掉旧版本并添加了上面的新行。
原始代码:https://github.com/xoxco/jQuery-Tags-Input/issues/22
var tidyTags = function(e) {
var tags = ($(e.target).val()).split(',');
//var tags = ($(e.target).val() + ',' + e.tags).split(',');
var target = $(e.target);
target.importTags('');
for (var i = 0, z = tags.length; i<z; i++) {
var tag = $.trim(tags[i]);
if (!target.tagExist(tag)) {
target.addTag(tag);
}
}
$('#' + target[0].id + '_tag').trigger('focus');
};