如何使用Chosen.JS多选来以编程方式选择多个选项

时间:2013-09-02 10:48:01

标签: javascript jquery angularjs jquery-chosen

我无法通过selectedJS / chosen.js找出如何以编程方式在多选中选择多个值,并且仍然将值绑定到我的ng-model(angularJS)。

案例:我有一个用户列表,其中一些用户已经保存在当前项目中。我想将这些用户显示为已选中(但我不知道如何)。

我已经尝试找到我想要预先选择的用户的索引并将其“选中”,如下所示:

$('.chzn-container-multi').val(0).trigger('liszt:updated');
$('.chzn-container-multi').val(1).trigger('liszt:updated');
$('.chzn-container-multi').val(2).trigger('liszt:updated');

但这只选择最后一个。

非常感谢任何帮助!

修改

在#Marek Kowalski的帮助下,我能够选择列表中的值,但是它没有应用于与我的下拉列表相关联的ng-model,任何人都有解决方案吗?

2 个答案:

答案 0 :(得分:11)

选择多个值并更新所选内容可通过此单行

完成

对于版本< 1.0

$('.chzn-container-multi').val([0,1,2]).trigger('liszt:updated');

OR版本> 1.0

$('.chzn-container-multi').val([0,1,2]).trigger('chosen:updated');

答案 1 :(得分:2)

我不确定这是推荐的方法,但对我有用的解决方案是手动更改选项上的selected =“selected”属性,而不是触发“liszt:updated”事件。要选择前3个选项,请使用以下代码:

$('select option:nth-child(1)').attr('selected', 'selected');
$('select option:nth-child(2)').attr('selected', 'selected');
$('select option:nth-child(3)').attr('selected', 'selected');
$('select').trigger('liszt:updated');
// since version 1.0 the event name is changed to
$('select').trigger('chosen:updated');