4

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 ?

4

2 回答 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 回答