更改jquery动态选择max_selected选项

pau*_*goo 5 javascript max multiple-select option jquery-chosen

我有两个select选项,class和class_attr类有2个选项:A和B class_attr有很多选项:aa,bb,cc,dd,ee,...

我的问题是,如果用户选择A,如何实现,所选的max_selected只有5个选项,如果用户更改为B,则所选的max_selected只有3个选项.

我正在尝试做这样的事情:

$(".class").change(function(){
        var code = $(this).val();
        if(code == 1){
           $(".class_attr").chosen({max_selected_options: 5});
            }
        else{
               $(".class_attr").chosen({max_selected_options: 3});          
        }
        $(".class_attr").trigger("liszt:updated");
});
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,class_attr的选项列表将只设置一次(选择第一个类max_selected_options值,无论是5还是3),并且在第一次之后永远不会更新max_selected_options.谢谢〜

Gru*_*nny 6

试试这个:

$('.class').chosen().change(function () {

    var code = $(this).val();
    var maxOptions = code == 1 ? 5 : 3;

    $(".class_attr").chosen('destroy').chosen({ max_selected_options: maxOptions });
});
Run Code Online (Sandbox Code Playgroud)

看起来你不能在它被初始化之后改变任何选项,所以它必须在被再次创建之前被销毁.