我正在尝试将一系列选定项目加载到现有的select2下拉列表中,以便在加载时有预先选择的项目,但我很难让我的语法正确。
给出以下json数组,即$ scope.attributes
[{"AttributeId":169,"AttributeName":"Abstract"},
{"AttributeId":170,"AttributeName":"Animal"},
{"AttributeId":171,"AttributeName":"Beach"}]
以及创建select2下拉列表的初始代码
$(".attribute-tagging").select2({
closeOnSelect: true, placeholder: ""
});
以及加载所有可用选项的下拉列表的html标记。
<select class="attribute-tagging" id="edit-attributes" multiple="multiple">
<option value="{{attribute.AttributeId}}" ng-repeat="attribute in attributes">{{attribute.AttributeName}}</option>
</select>
这是有效的,但我希望已经选择了一个或多个这些项目,因此在页面加载时,所有属性都会添加到选择列表中,然后,例如 - 已选择Animal和Beach。
理想情况下,我可以填充一个数组,当传入select2下拉列表时,列表中的某些项目标记为“已选择”。
所以,简而言之
任何帮助将不胜感激。
试试这个代码。
var $mySelect = $(".attribute-tagging").select2({
closeOnSelect: true, placeholder: ""
});
$mySelect.val(["169", "171"]).trigger("change");
现在抽象和海滩被选中
您可以使用id选择倍数
$('#edit-attributes').val(["169", "171"]);
$('#edit-attributes').trigger("change");
不要忘记最后触发更改事件!