在不提交表单的情况下设置 Select2 的值

Setting value of a Select2 without submitting form

我开始使用 Select2 替换我应用中的下拉菜单。我的问题是关于如何调整现在有效的方法。

我有一个包含完整日历组件的页面和 3 个用于选择我要显示的日历的下拉菜单。使用下拉列表后,其他 2 个将像那样重置(我使用 jQuery):

$('#dropdown1').prop('selectedIndex',0)

这样做的主要优点是表单仅由 "changed" 下拉菜单提交(每个下拉菜单都有自己的更改事件被捕获以重置其他的)。

使用 select2,如果我使用它,将启动重置下拉列表的更改事件:

$('#dropdown1').select2('val','')

因此所有更改事件都已启动。

是否有任何解决方案可以在不启动更改事件的情况下设置 select2 下拉列表的值?

谢谢

在版本 4 的文档中,您现在可以直接调用 val()。根据我正在阅读的内容,这不会导致 onChange 因为他们说你必须手动调用它。

来自文档的片段

$('select').val('US'); // Change the value or make some change to the internal state
$('select').trigger('change.select2'); // Notify only Select2 of changes

那么我认为您可以跳过 trigger 电话。