当用户输入时,Select2下拉列表允许用户使用新值

时间:2014-09-02 05:34:48

标签: javascript jquery jquery-select2

可以将select2组件配置为接受新值,如Select2 dropdown but allow new values by user?

中的询问

你可以在http://jsfiddle.net/pHSdP/646/看到它,代码如下:

$("#tags").select2({
    createSearchChoice: function (term, data) {
        if ($(data).filter(function () {
            return this.text.localeCompare(term) === 0;
        }).length === 0) {
            return {
                id: term,
                text: term
            };
        }
    },
    multiple: false,
    data: [{
        id: 0,
        text: 'story'
    }, {
        id: 1,
        text: 'bug'
    }, {
        id: 2,
        text: 'task'
    }]
});

问题是,如果输入新值并按Enter键或按Tab键,新值将仅添加到列表中。

当使用类型并离开select2时,是否可以将select2组件设置为接受此新值。 (就像普通的html输入标签一样,通过点击屏幕上的某个位置保留你输入的值)

我发现select2有select2-blur个事件,但是我找不到获取这个新值并将其添加到列表的方法?!

3 个答案:

答案 0 :(得分:10)

添加属性selectOnBlur: true,似乎对我有用。

编辑:很高兴它也适合你!

答案 1 :(得分:4)

我正在使用Select2 4.0.3并且必须添加两个选项:

tags: true,
selectOnBlur: true,

这对我有用

答案 2 :(得分:0)

并且能够与现有选择一起提交多个新选择:

select2({tags: true, selectOnBlur: true, multiple: true})