Select2追加新选项文本为空

时间:2019-10-18 16:47:14

标签: javascript jquery jquery-select2

我正在使用select2插件通过ajax选择多个用户,并且在同一页面中,我可以向数据库中添加新用户。

在数据库中创建新用户后,我想自动将一个选项附加到select2。

插件通过以下方式初始化:

$('#users').select2({
    ajax:
    {
        url: 'ajaxFetchUsers',
        type: 'POST',
    },
    cache: true,
    templateSelection: function(item)
    {
        return item.name;
    },
});

然后我以这种方式添加新用户:

$.post('ajaxAddUser', { name: name, email: email }, function(response)
{
    var newOption = new Option(name, response.id, true, true);
    $('#users').append(newOption).trigger('change');
});

如您所见,在收到响应后,我尝试在下拉菜单中添加一个包含新用户并已选择的新选项!

尽管似乎已添加了用户,但您可以在此处看到空白: enter image description here

1 个答案:

答案 0 :(得分:0)

已解决

我解决的方法可能不是正确的方法,但是我无法通过Select2插件弄清楚如何以编程方式正确添加新选项。解决方案是在jQuery的帮助下手动更改HTML。

var newOption = new Option(name, response.id, false, true);
$('#users').append(newOption).trigger('change');

setTimeout(function()
{
    $('.select2-selection__choice').last().html('<span class="select2-selection__choice__remove" role="presentation">×</span> ' + name);
}, 300);