有没有办法在不触发更改事件的情况下将select2加载到默认值?
目前,我正在做:
$('#mylist').val(2).trigger("change");
但这会造成延迟,用户最初会看到一个选项然后会发生变化,这是一个非常烦人的事。
答案 0 :(得分:3)
在HTML中设置默认值:
<select id="myList">
<option id="foo">option 1</option>
<option id="bar" selected="selected">option 2</option>
</select>
然后在元素上调用select2
进行初始化:
$('#myList').select2();
或
$('#myList').select2("val", null);
答案 1 :(得分:2)
我知道我回答这个问题真的来晚了。我面临着同样的问题。但是,通过一些研究,我发现了一种可以像魅力一样发挥作用的解决方案。
您可以使用以下代码设置一个选项
$("#mylist").val(2).trigger('change.select2');
此解决方案不会触发更改事件,而是将选项设置为select2
组件。
希望对您有帮助。
答案 2 :(得分:1)
如果要设置选定的选项,通常可以这样做:
$('#element').val('your_val').trigger('change');
但是,如果您不想运行触发器,则必须先销毁它,然后在再次创建之前分配val,如下所示:
$('#element').select2('destroy');
$('#element').val('your_val').select2();