使用Chosen插件更改select内容

我试图改变当前select的select与select插件。

该文档涵盖了更新列表,并触发一个事件时,select一个选项,但没有(我可以看到)在外部更改当前选定的值。

我做了一个jsFiddle来演示代码和我试图改变select的方法:

$('button').click(function() { $('select').val(2); $('select').chosen().val(2); $('select').chosen().select(2); }); 

从文档中的“更新dynamicselect”部分:您需要触发字段上的“select:更新”事件

 $(document).ready(function() { $('select').chosen(); $('button').click(function() { $('select').val(2); $('select').trigger("chosen:updated"); }); }); 

注意:1.0之前的版本使用以下内容:

 $('select').trigger("liszt:updated"); 

我的回答迟了,但是我想补充一些上面答案中没有的信息。

1)如果您想在select的select中select单个值。

 $('#select-id').val("22").trigger('chosen:updated'); 

2)如果你正在使用多个select的select,那么你可能需要一次设置多个值。

 $('#documents').val(["22", "25", "27"]).trigger('chosen:updated'); 

从以下链接收集的信息:
1) select文件
2) selectGithub讨论

有时您必须删除当前的选项才能操作选定的选项。

这里是一个如何附加选项的例子:

 <select id="mySelectId"> <option value=""></option> <option value="Argentina">Argentina</option> <option value="Germany">Germany</option> <option value="Greece">Greece</option> <option value="Japan">Japan</option> <option value="Thailand">Thailand</option> </select> <script> mySelect = $('#mySelectId'); var selected = mySelect.val(); //get current values selected = selected.concat(['Germany','Argentina']); //merge with new values selected = Array.from(new Set(selected)); //make values unique mySelect.val(null); //delete current options mySelect.val(selected); //add new options mySelect.trigger('chosen:updated'); //update chosen </script>