如何使用 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

这可能吗?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...