1

我无法弄清楚如何使用 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,有人有解决方案吗?

4

2 回答 2

12

选择多个值并更新选择的值可以通过这个单行来完成

对于版本 < 1.0

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

或版本 > 1.0

$('.chzn-container-multi').val([0,1,2]).trigger('chosen:updated');
于 2015-04-02T10:02:12.910 回答
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');
于 2013-09-02T12:36:32.773 回答