小编Ben*_*sch的帖子

使用createSearchChoice的Select2使用新创建的键盘输入选项,即使给出匹配,错误或我错过了什么?

我正在使用Select2(版本3.4.0)来填充标记列表.标签通过ajax调用与现有标签匹配,我createSearchChoice用来创建新标签.代码到目前为止工作,看起来像这样:

$(mytags).select2({
    multiple: true,
    placeholder: "Please enter tags",
    tokenSeparators: [ "," ],
    ajax: {
        multiple: true,
        url: myurl,
        dataType: "json",
        data: function(term, page) {
            return {
                q: term
            };
        },
        results: function(data, page) {
            return data;
        }
    },
    createSearchChoice: function(term) {
        return {
            id: term,
            text: term + ' (new)'
        };
    },
});
Run Code Online (Sandbox Code Playgroud)

所有漂亮的标准,除了注意附加(new)createSearchChoice.我需要用户知道这不是一个预先存在的标签.

它按预期工作:如果我开始输入"new-tag",我会在列表顶部显示"new-tag(new)"标签,如果我选择它,则标签列表包含"new-tag(new ),"如预期的那样.如果标签已存在,则Select2检测到匹配,并且不会创建"(新)"选项.按返回或单击匹配按预期工作.

当我tokenSeparators在匹配时输入逗号(我的单个条目)时会出现问题.Select2关闭该标记,并将标记添加到列表中,但附加了"(new)"标签,即它使用了返回值,createSeachChoice即使它没有.

这是Select2中的错误,还是我错误地使用它(我应该怎么做)?

jquery-select2

16
推荐指数
2
解决办法
2万
查看次数

标签 统计

jquery-select2 ×1