当数据来自ajax时,是否可以在select2的顶部添加一个选项?

时间:2019-10-10 14:20:34

标签: jquery-select2-4

我需要在列表的开头在select2控件中插入一个新选项。

我尝试过

        var data = {
            id: -1,
            text: 'SISTEMA'
        };

        var newOption = new Option(data.text, data.id, false, false);
        $('#UsuarioId').append(newOption).trigger('change');

但是当数据来自Ajax时,这不起作用。在这种情况下,组合框会出现,并且该选项处于选中状态,并且当列表展开时,该选项将不存在。

问候 海梅

2 个答案:

答案 0 :(得分:0)

创建一个变量,并首先将该变量定义为要包含的选项-例如:

var trHTML;    
trHTML = '<option value=""></option>'

然后遍历结果集,将每一项添加回该变量

$.each(x, function (i, item) {
      trHTML += '<option value=' + value_name +'>'+ display_name +'</option>';
});

然后将整个列表添加到选择项,并启动Select2

$('#dropdown_name').append(trHTML);
$('#dropdown_name').select2({
     placeholder: "foobar",
     allowClear: true
});

答案 1 :(得分:0)

select2中的本文档已经说明

https://select2.org/data-sources/ajax