将select2下拉列表从单选转换为多选

时间:2018-08-14 15:59:59

标签: javascript jquery-select2

我在复杂控件中有10到12个select2下拉菜单,需要将它们初始化为select2下拉菜单。
在下拉菜单中打开,我进行了ajax调用以加载数据。如果从服务器加载了特定的数据,问题就出在这里。下拉菜单应该变成多个select2。

这是代码的一部分:

$selectDropDown.select2({
    ajax: {
        url: '/GetValues',
        dataType: 'json',
        data: function (params) {
            var query = {
                title: name,
            }

            return query;
        },
        processResults: function (data) {
            if (data.type === '10') {

               // I need to make it multiple select here
               return {results: data.results};
            } else {
               var values = getDefaultDataItems();
               return {results: values };
            }

        }
    },
    allowClear: true,
    placeholder: 'Select values'
    width: '100%',
});

由于优化原因,无法在select2初始化之前加载数据。

当前它的工作方式是:

 processResults: function (data) {
            if (data.type === '10') {

               // The hacking way
               $selectDropDown.select2({
                        multiple: 'multiple',
                        data: data.results
                    }).select2('open');
            } else {
               var values = getDefaultDataItems();
               return {results: values };
            }
        }

我想问问这是他最好的方法吗?
有内置功能吗?

1 个答案:

答案 0 :(得分:0)

对我来说,最好的方法是将属性1,2,3,1,5,6,5,7,8,10添加到我的multiple中。并将属性名称更改为数组。之后,在我的select上致电.select2();

例如,我有select类的select

sub-type

如果您想再次返回单选,只需编写以下代码:

$('.sub-type').prop('multiple', true).attr('name', 'sub_type[]').select2();

对不起,我今天才找到您的问题。我希望我的回答可以帮助其他人。