选择插件max_selected_options

时间:2013-03-13 10:35:15

标签: jquery-plugins jquery-chosen

我使用Chosen jquery插件,我注意到 max_selected_options 无效:

代码是这样的:

<!doctype html> 
<html lang="en"> 
<head>
    <link rel="stylesheet" href="chosen/chosen.css" />
</head>
<body>

<select id="assets" data-placeholder="Choose assets" class="chzn-select" multiple style="width:350px;" tabindex="4">
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
    <option value="e">e</option>
    <option value="f">f</option>
    <option value="g">g</option>
</select>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="chosen/chosen.jquery.js" type="text/javascript"></script>
<script type="text/javascript"> 


    $(document).ready(function(){
        $(".chzn-select").chosen();
        $(".chzn-select-deselect").chosen({allow_single_deselect:true});
        $('.chzn-select').chosen({ max_selected_options: 3 });
        $(".chzn-select").bind("liszt:maxselected", function () { alert("a"); });
        $(".chzn-select").chosen().change( function () { alert("a"); } );
    });

</script>
</body>
</html>

我不明白我的代码有什么不对。这一行:

$('.chzn-select').chosen({ max_selected_options: 3 });

应限制允许的最大选择数。但它不起作用。我仍然可以选择任意数量的项目。 我注意到,在达到最大选定项目数的情况下应该触发的事件也不会触发:

$(".chzn-select").bind("liszt:maxselected", function () { alert("a"); });

代码中是否有任何错误?

还有一个问题:如何在我的列表中添加搜索功能,例如插件页面上第一个示例中显示的搜索框?

感谢。

1 个答案:

答案 0 :(得分:11)

您调用两次chosen()方法,这就是您遇到问题的原因:

$(".chzn-select").chosen();
$('.chzn-select').chosen({ max_selected_options: 3 });

删除第一个并且它有效。你的JS代码应该是:

$(document).ready(function(){
    $(".chzn-select-deselect").chosen({allow_single_deselect:true});
    $(".chzn-select").chosen({ max_selected_options: 3 });
    $(".chzn-select").bind("chosen:maxselected", function () { alert("max elements selected"); });
    $(".chzn-select").chosen().change( function () { alert("change"); } );
});