Javascript 动态更改jquery selected max_selected选项
我有两个选择选项,class和class\u attr 类有两个选项:A和B 类属性有很多选项:aa、bb、cc、dd、ee、 我的问题是,如果用户选择A,则选择的最大值仅为5个选项,如果用户更改为B,则选择的最大值仅为3个选项,如何实现 我正在尝试这样做:Javascript 动态更改jquery selected max_selected选项,javascript,max,option,jquery-chosen,multiple-select,Javascript,Max,Option,Jquery Chosen,Multiple Select,我有两个选择选项,class和class\u attr 类有两个选项:A和B 类属性有很多选项:aa、bb、cc、dd、ee、 我的问题是,如果用户选择A,则选择的最大值仅为5个选项,如果用户更改为B,则选择的最大值仅为3个选项,如何实现 我正在尝试这样做: $(".class").change(function(){ var code = $(this).val(); if(code == 1){ $(".class_attr").chos
$(".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的选项列表将只设置一次(选择的第一个class max_selected_options值,无论是5还是3),并且在第一次之后将永远不会更新max_selected_选项。
谢谢~试试这个:
$('.class').chosen().change(function () {
var code = $(this).val();
var maxOptions = code == 1 ? 5 : 3;
$(".class_attr").chosen('destroy').chosen({ max_selected_options: maxOptions });
});
它看起来在初始化后无法更改任何选项,因此必须在再次创建之前将其销毁
[编辑]
您可以通过$(“.class\u attr”).data('selected')访问所选实例
然后可以直接在实例上更新选项:
$('.class_attr').data('chosen').max_selected_options = 2;
$('.class_attr').trigger("chosen:updated");
在我的一个项目中,我需要将maximun value设置为所有选择的下拉列表,因此我使用了下一次初始化:
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
});
});
在“应限制哪些最大选定选项”下拉列表中,我设置了“属性数据最大选项”
示例:
<select class="chosen-select" data-max-options="5" name="lands[]" multiple="" data-placeholder=''>
//options in cycle here
</select>
//循环中的选项在这里
Sorry2我刚输入了错误的类型,我的意思是我触发了(“李斯特:更新”);用$(“.class_attr”)代替$(“#item_opt”),但仍然不起作用。非常感谢您的回复。我已经尝试实现了你的方法,但它仍然无法工作,甚至max_selected_选项也无法工作。下面是一个显示它工作的示例。我认为您需要使用Selected 1.0来获得销毁功能。