我正在使用 Oleg 的select2 demo,但我想知道是否可以更改下拉菜单中当前选择的值。
例如,如果加载的四个值是:"Any", "Fruit", "Vegetable", "Meat"并且下拉列表默认为"Any",我将如何"Fruit"在 JqGrid 事件中将其更改为loadComplete?
"Any", "Fruit", "Vegetable", "Meat"
"Any"
"Fruit"
loadComplete
这可能吗?
对于 select2 版本 >= 4.0.0
其他解决方案可能不起作用,但是以下示例应该起作用。
$('select').val('1').trigger('change');
$('select').val('1').trigger('change.select2');
有关这些示例,请参见此 jsfiddle。感谢 @minlare 的解决方案 2。
假设我有一个最好的朋友,用人们的名字选择。所以 Bob、Bill 和 John(在此示例中,我假设 Value 与名称相同)。首先,我在我的选择上初始化 select2:
$('#my-best-friend').select2();
现在我在浏览器中手动选择 Bob。接下来鲍勃做了一些淘气的事,我不再喜欢他了。所以系统为我取消选择 Bob:
$('#my-best-friend').val('').trigger('change');
或者说我让系统选择列表中的下一个而不是 Bob:
// I have assume you can write code to select the next guy in the list $('#my-best-friend').val('Bill').trigger('change');
Select 2 网站上的注释(请参阅已弃用和删除的方法)可能对其他人有用:
.select2(‘val’) “val” 方法已被弃用,将在 Select2 4.1 中删除。已弃用的方法不再包含 triggerChange 参数。
您应该直接在基础元素上调用 .val 。如果您需要第二个参数 (triggerChange),您还应该在元素上调用 .trigger(“change”)。
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');