我使用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"); });
代码中是否有任何错误?
还有一个问题:如何在我的列表中添加搜索功能,例如插件页面上第一个示例中显示的搜索框?
感谢。
答案 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"); } );
});