如何以编程方式向selectize.js中的选项组添加选项

时间:2015-01-30 17:16:29

标签: javascript selectize.js

我想在Selectize.js中为选项组动态添加一个选项。 API只有

addOption(data)
updateOption(value, data)
addOptionGroup(id, data)

没有太多帮助什么"数据"是。我已经看过添加选项的示例,但没有提到使用optionGroups

$('#button-addoption').on('click', function() {
    control.addOption({
    id: 4,
    title: 'Something New',
    url: 'http://google.com'
});

由于

1 个答案:

答案 0 :(得分:1)

数据是传递给optgroup渲染方法的对象。 所以,你可以放任何东西。

$('#selectize').selectize({
    ...
    optgroupField: 'mygroup',
    render: {
        optgroup_header: function(data, escape) {
            return '<div class="optgroup-header">' + escape(data.a) + escape(data.b) '</div>';
        }
    },
    ...
});

然后,只要您愿意,您可以在选择中添加组和选项:

//add group
var optGroup = { a: 'fruit', b: ... };
$('#selectize')[0].selectize.addOptionGroup('0', optGroup);

//add option
var option = { value: 'abc', text: 'banana', mygroup: '1'};            
$('#selectize')[0].selectize.addOption(option);

当然,如果您只想要该组的标签,您可以这样做:

//code
...
render: {
    optgroup_header: function(data, escape) {
    return '<div class="optgroup-header">' + escape(data) + '</div>';
}
...
//code

$('#selectize')[0].selectize.addOptionGroup('1', 'meat');

您可以在页面中看到API demo(搜索&#39;选项组(编程)&#39;)。