Jquery标签插件粘贴问题

时间:2012-09-12 14:07:07

标签: javascript jquery

我正在使用XOXCO的Jquery Tag插件。它工作得很好,但是当有人粘贴带有逗号的文本时,它不会将它们分开。我试过这个解决方案。 https://github.com/xoxco/jQuery-Tags-Input/issues/22 。但它会两次添加新的粘贴标签。有没有人使用这个插件并遇到同样的问题?

4 个答案:

答案 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');
};