tag-it从剪贴板插入数据

时间:2013-09-08 09:45:12

标签: jquery jquery-ui tag-it

这是关于tag-it jquery组件的问题。 当我通过键盘输入标签时,逗号字段分隔符工作正常,但是当我从剪贴板粘贴带逗号的标签(例如 - 一,二,三)时,它看起来像一个标签内有逗号的单个标签。是否可以配置tag-it以识别上述场景中的不同(分离)标签?

2 个答案:

答案 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/

从选项中编辑DELIMITER GOT

您可以使用以下方式获取分隔符:

$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/

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