我正在使用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');
});
如您所见,在收到响应后,我尝试在下拉菜单中添加一个包含新用户并已选择的新选项!
答案 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);