我使用的是Oleg的select2 demo,但我想知道是否可以更改下拉菜单中当前选定的值.

例如,如果加载的四个值是:"Any", "Fruit", "Vegetable", "Meat",下拉列表默认为"Any",那么在JqGrid事件loadComplete中,我如何将其更改为"Fruit"

Is this possible?

推荐答案

For select2 version >= 4.0.0

其他解决方案可能不起作用,但是下面的例子应该起作用.

Solution 1: Causes all attached change events to trigger, including select2

$('select').val('1').trigger('change');

解决方案2:仅导致触发select2更改事件

$('select').val('1').trigger('change.select2');

请参阅此jsfiddle以了解这些示例.感谢@minlare提供的解决方案2.

Explanation:

Say I have a best friend select with people's names. So Bob, Bill and John (in this example I assume the Value is the same as the name). First I initialize select2 on my select:

$('#my-best-friend').select2();

Now I manually select Bob in the browser. Next Bob does something naughty and I don't like him anymore. So the system unselects Bob for me:

$('#my-best-friend').val('').trigger('change');

或者假设我让系统 Select 列表中的下一个,而不是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网站(参见Deprecated and removed methods)上可能对其他人有用的注释:

.select2('val')

你应该直接打电话.而不是在基础元素上.如果需要第二个参数(triggerChange),还应该调用.在元素上触发("更改").

$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');

Jquery相关问答推荐

使用 howler.js 中的变量播放多种声音

点击和touch 事件之间的jQuery冲突解决方法

使用 jQuery 时何时/为什么要在变量前加上$?

foreach for JSON 数组,语法

jQuery非只读 Select 器

在 Bootstrap 3 中向工具提示添加换行符

为什么 jQuery 不使用 requestAnimationFrame?

jQuery切换CSS?

jQuery 插入 div 作为某个索引

Backbone.js 和 jQuery

使用跨域帖子发送凭据?

根据弹出框相对于窗口边缘的 X 位置更改 Bootstrap 弹出框的位置?

将返回的 JSON 对象属性转换为(较低的第一个)camelCase

点击时保持 Bootstrap 下拉菜单打开

循环判断复选框并计算每个选中或未选中的复选框

用 Javascript 加载 jQuery 并使用 jQuery

jQuery 按值 Select 选项元素

在未实现接口 FormData 的对象上调用附加

为什么要使用发布/订阅模式(在 JS/jQuery 中)?

什么时候应该使用 jQuery 的 document.ready 函数?