使用Chosen插件更改选择中的选择

gak*_*gak 100 javascript jquery select jquery-chosen

我正在尝试使用Chosen插件更改select中当前选择的选项.

文档包括更新列表,并在选择选项时触发事件,但在外部更改当前选定的值时没有(我可以看到).

我已经制作了一个jsFiddle来演示代码和我试图改变选择的方法:

$('button').click(function() {
    $('select').val(2);
    $('select').chosen().val(2);
    $('select').chosen().select(2);
});
Run Code Online (Sandbox Code Playgroud)

小智 207

文档中的"动态更新动态选择"部分:您需要在该字段上触发"selected:updated"事件

$(document).ready(function() {

    $('select').chosen();

    $('button').click(function() {
        $('select').val(2);
        $('select').trigger("chosen:updated");
    });

});
Run Code Online (Sandbox Code Playgroud)

注意:1.0之前的版本使用以下内容:

$('select').trigger("liszt:updated");
Run Code Online (Sandbox Code Playgroud)

  • @Lucas Welper:你还应该改变`$('select').val(2);`到`$('select').val(2).change();`,因为改变了select的选择选项使用jQuery不会触发更改事件,有些人可能需要它. (10认同)
  • 我知道这是一个旧帖子 - 但更简单的更新方法只有一个字符串:`$('select').val(2).trigger("selected:updated");` (9认同)
  • 仅供参考:他们已经更新到1.0,现在使用`selected:updated`而不是`liszt:updated` (6认同)

Aam*_*mir 37

我的答案很晚,但我想补充一些上述答案中遗漏的信息.

1)如果要在所选的选择中选择单个值.

$('#select-id').val("22").trigger('chosen:updated');
Run Code Online (Sandbox Code Playgroud)

2)如果您使用多个选择的选择,那么您可能需要一次设置多个值.

$('#documents').val(["22", "25", "27"]).trigger('chosen:updated');
Run Code Online (Sandbox Code Playgroud)

从以下链接收集的信息:
1)选择的文件
2)选择Github讨论