【问题标题】:tag-it inserting data from the clipboard标记它从剪贴板插入数据
【发布时间】:2013-09-08 09:45:11
【问题描述】:

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

【问题讨论】:

  • Hmmm.. 该插件为afterTagAdded 事件提供回调,也许您将能够在该回调中检测到包含逗号字符的标签,然后将其拆分为该字符,然后插入它们一一使用createTag方法
  • 哦! preprocessTag 方法在这里也可能有用。只需检查提供的标签名称中是否存在逗号,然后将其拆分并一一添加。

标签: jquery jquery-ui tag-it


【解决方案1】:

您可以使用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/

EDIT DELIMITER GOT FROM OPTION

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

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

【讨论】:

  • 非常感谢!还有一个问题,是否可以从组件设置中获取分隔符的值?
  • 有意思,让我看看!
【解决方案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());
                        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多