Textext.js-删除所有标签并清理textarea

时间:2018-12-10 16:28:56

标签: javascript jquery jquery-textext

我有一个问题,我正在使用Textext.js从数据库中列出用户,我正在使用带有自定义数据对象({name:'nameTag',id:1})的标签,问题是我需要使用“ cleanFields”按钮清理文本字段和标签,但我找不到解决方法。这是我的代码:

$("#myTextarea").textext({
    plugins: 'tags prompt autocomplete',
    prompt: 'Add one...',
    ext: {
        itemManager: {
            items: [],
            stringToItem: function (str) {
                for (var i = 0; i < this.items.length; i++)
                    if (this.items[i].name == str) {
                        id = this.items[i].id;
                        break;
                    }
                return { name: str, id: id }; //tags with custom data objects
            },
            itemToString: function (item) {
                this.items.push(item);
                return item.name;

            },
            compareItems: function (item1, item2) {
                return item1.name == item2.name;
            }
        }
    }
})
.bind('getSuggestions', function (e, data) {
    var list = f_GetListTags() //this returns the list from the database
    , textext = $(e.target).textext()[0],
        query = (data ? data.query : '') || '';
    $(this).trigger(
        'setSuggestions',
        { result: textext.itemManager().filter(list, query) }
    );
})

按钮:

$("#cleanFields").click(function () {
    $('#myTextarea').val(''); //this cleans the text area

    //but i also need to remove all tags :(
});

请帮助我! :(

1 个答案:

答案 0 :(得分:0)

标签存储在div类 .text-tags 中,并且具有锚点 a.text-remove ,您可以将其删除-您将不会如果您已经使用了文本区域,则无需清除文本区域,因为它已经是删除的一部分:

$("#cleanFields").click(function () {
    // This will clear the text area and remove the tags :)
    $(".text-tags a.text-remove").trigger("click");
});

警告:这将清除所有带有标签的文本区域。除非仅使用1个标签输入字段,否则应考虑使选择器(id /类)更具体,以避免冲突。