使用选定的选项加载 Select2 而不触发更改?
Loading Select2 with a selected option WITHOUT triggering change?
有什么方法可以在不触发更改事件的情况下将select2加载到默认值吗?
目前,我在做:
$('#mylist').val(2).trigger("change");
但这会造成延迟,用户首先会看到一个选项,然后它会改变,这很烦人。
在 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);
如果你想设置一个选中的选项,通常你可以这样做:
$('#element').val('your_val').trigger('change');
但是如果你不想运行触发器,你必须先销毁它,然后在再次创建之前分配val,就像这样:
$('#element').select2('destroy');
$('#element').val('your_val').select2();
我知道我回答这个问题真的来晚了。我遇到了同样的问题。但是经过一些研究,我发现了一个非常有效的解决方案。
您可以使用以下代码设置选项
$("#mylist").val(2).trigger('change.select2');
此解决方案不会触发主要更改事件,但会将选项设置为 select2
组件。
希望对你有所帮助。
有什么方法可以在不触发更改事件的情况下将select2加载到默认值吗?
目前,我在做:
$('#mylist').val(2).trigger("change");
但这会造成延迟,用户首先会看到一个选项,然后它会改变,这很烦人。
在 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);
如果你想设置一个选中的选项,通常你可以这样做:
$('#element').val('your_val').trigger('change');
但是如果你不想运行触发器,你必须先销毁它,然后在再次创建之前分配val,就像这样:
$('#element').select2('destroy');
$('#element').val('your_val').select2();
我知道我回答这个问题真的来晚了。我遇到了同样的问题。但是经过一些研究,我发现了一个非常有效的解决方案。
您可以使用以下代码设置选项
$("#mylist").val(2).trigger('change.select2');
此解决方案不会触发主要更改事件,但会将选项设置为 select2
组件。
希望对你有所帮助。