Selectize.js上的条件选项

时间:2016-06-13 08:33:21

标签: jquery selectize.js

我有一个选择有2种选项:用户和组。当用户被选中时,它没问题,但是当选择了一个组时,我需要用组中的用户列表替换所选项,使用该组作为一组的别名。

示例:我有这个选项列表:

var options: [
            {text: 'Ironman', value: '1', type: 'user' },
            {text: 'Spiderman', value: '2', type: 'user' },
            {text: 'Black Widow', value: '3', type: 'user' },
            {text: 'Superhero', value: '4', type: 'group' }
        ]

如果选择了“超级英雄”,我需要“铁人三号”,“蜘蛛侠”等列表。和黑寡妇'替换选择。  我无法找到正确的事件来阻止选择,并将其替换为使用AJAX检索的用户列表。

1 个答案:

答案 0 :(得分:1)

您可以使用.on('change', handler) event

// When you create your selectize
var $select = $("#select_id").selectize({
    // Options here
});
var selectizeControl = $select[0].selectize;

<小时/> 然后你可以访问它

selectizeControl.on('change', function() {
    var value = selectize.getValue();
    // From here you get the value, and do whatever you need with it
    console.log(value);

    if (options[value]["type"] == 'group')
    {
        var tmp = 0;
        var users = "";
        // Here, do your ajax call to get your list from the value
        ajaxCall(value, function(list) {
            // I guess you'd have an array from your server
            for (var user in list)
            {
                if (tmp > 0)
                    users += ",";
                users += user;
                tmp++;
            }
            $('#select_id').val(users);
        });
    }
});