使用以下html:
<input type='hidden' id='cantseeme'>
我可以动态创建Select2控件,并添加我的选项:
// simplified example
var select2_ary = [];
select2_ary.push({
id : "one",
text : "one"
});
select2_ary.push({
id : "two",
text : "two"
});
$("#cantseeme").select2({
placeholder : "Pick a number",
data : select2_ary
});
但是,我似乎无法弄清楚如何以这种方式添加optgroups
。我在github上发现了this讨论,在博客上发现了this文章,但前者似乎没有讨论动态optgroup
添加内容,而我根本无法理解后者
有人有什么想法吗?
答案 0 :(得分:33)
我发现答案隐藏在您链接的github讨论中,optgroups
的对象结构如下:
{
id : 1,
text : 'optgroup',
children: [{
id : 2,
text: 'child1'
},
{
id : 3,
text : 'nested optgroup',
children: [...]
}]
}
<强> Demo fiddle 强>
答案 1 :(得分:25)
是的,koala_dev上面的回答是正确的。但是,如果您不希望选项组标题成为可选标记,则删除&#34; id&#34;您传递给select2的标头中的字段。儿童[]项目仍然需要&#34; id&#34;字段可选择。例如:
// `Header One` Is Selectable
[{
id : 0,
text : "Header One",
children : [{
id : 0,
text : "Item One"
}, {
...
}]
}]
// `Header One` Is Not Selectable
[{
text : "Header One",
children : [{
id : 0,
text : "Item One"
}, {
...
}]
}]