我在复杂控件中有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 };
}
}
我想问问这是他最好的方法吗?
有内置功能吗?
答案 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();
对不起,我今天才找到您的问题。我希望我的回答可以帮助其他人。