我有两个select选项,class和class_attr class有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");
});
但是这似乎不起作用,class_attr的选项列表将只设置一次(选择第一个类max_selected_options值,无论是5还是3),并且在第一次之后永远不会更新max_selected_options。 谢谢〜
答案 0 :(得分:6)
试试这个:
$('.class').chosen().change(function () {
var code = $(this).val();
var maxOptions = code == 1 ? 5 : 3;
$(".class_attr").chosen('destroy').chosen({ max_selected_options: maxOptions });
});
看起来你无法改变任何选项,因为它必须在再次创建之前被销毁。
答案 1 :(得分:1)
在我的一个项目中,我需要设置最大值而不是所有选定的下拉菜单,所以我使用了下一个初始化:
jQuery.each(jQuery(".chosen-select"), function (index, select) {
var max_options = 0;//zero mean unlimited
if (jQuery(select).data('max-options') !== 'undefined') {
max_options = jQuery(select).data('max-options');
}
jQuery(select).chosen({
search_contains: true,
no_results_text: lang.no_results,
placeholder_text_single: lang.select_one,
placeholder_text_multiple: lang.select_some,
disable_search: disable_search,
max_selected_options: max_options
});
});
在应限制最大选定选项的下拉列表中,我设置属性data-max-options
示例强>:
<select class="chosen-select" data-max-options="5" name="lands[]" multiple="" data-placeholder=''>
//options in cycle here
</select>