如何解决如何使用 JqGrid 更改 select2 下拉列表的选定值?
其他解决方案可能不起作用,但是以下示例应该起作用。
方案一:触发所有附加的变更事件,包括select2
$('select').val('1').trigger('change');
解决方案 2:导致触发 JUST select2 更改事件
$('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 网站上的注释(请参阅已弃用和删除的方法)可能对其他人有用:
“val” 方法已被弃用,将在 Select2 4.1 中删除。已弃用的方法不再包含 triggerChange 参数。
您应该直接在基础元素上调用 .val 。如果您需要第二个参数 (triggerChange),您还应该在元素上调用 .trigger(“change”)。
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');
解决方法
我正在使用 Oleg 的select2 demo,但我想知道是否可以更改下拉菜单中当前选择的值。
例如,如果加载的四个值是:"Any","Fruit","Vegetable","Meat"
并且下拉列表默认为"Any"
,我将如何"Fruit"
在 JqGrid 事件中将其更改为loadComplete
?
这可能吗?