0

https://github.com/webworka/Tagedit/是参考。

我正在尝试以编程方式简单地添加一个项目。

我不确定该怎么做-那里有我缺少的功能吗?如果没有,我必须自己添加吗?

示例演示在这里:http ://tagedit.webwork-albrecht.de/ 。这个想法与 StackOverflow 处理标签的方式相同 - 当您键入项目时,它会搜索自动完成列表并在下拉列表中为您提供一些默认值。您也可以通过单击伪输入框区域内的空白区域来创建自定义元素。当您按下 Enter(用于完成条目添加的指定按钮)时,TagEdit.js 在将其添加到输入列表之前运行 isNew() 和其他内容。

我想要做的是以编程方式将新元素添加到输入列表(同时仍保留 TagEdit.js 的 isNew() 函数以防止重复条目。所以,基本上, input.tagedit_add('new item'); 将按照课程在输入框中添加一个新标签。

4

1 回答 1

0

我已经设法自己破解它以使其工作。

this.addNew = function (value) {
        var oldValue = (typeof value != 'undefined' && value.length > 0);
        var checkAutocomplete = oldValue == true? false : true;
        // check if the Value ist new
        console.log(value);
        var isNewResult = isNew(value, checkAutocomplete);
        if(isNewResult[0] === true || (isNewResult[0] === false && typeof isNewResult[1] == 'string')) {
            console.log('NEW: ' + value);

            if(options.allowAdd == true) {
                // Make a new tag in front the input
                html = '<li class="tagedit-listelement tagedit-listelement-old">';
                html += '<span dir="'+options.direction+'">' + value + '</span>';
                var name = baseName + '[]';
                html += '<input type="hidden" name="'+name+'" value="'+value+'" />';
                html += '<a class="tagedit-close" title="'+options.texts.removeLinkTitle+'">x</a>';
                html += '</li>';

                $('.tagedit-listelement-new').before(html);
            }
        } else { console.log('NOT NEW: ' + value)}
    };
return this;
于 2012-08-24T09:52:40.290 回答