Select2下拉列表允许在用户键入时按用户显示新值

Select2 dropdown allow new values by user when user types

本文关键字:用户 显示 新值 Select2 下拉列表      更新时间:2023-09-26

select2组件可以配置为接受新值,正如select2下拉列表中所要求的那样,但用户是否允许新值?

您可以在以下位置看到: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事件,但我找不到方法来获得这个新值并将其添加到列表中?!

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

编辑:很高兴它也为你工作!

我使用Select2 4.0.3,必须添加两个选项:

tags: true,
selectOnBlur: true,

这对我有效

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

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