我有一个可以选择的用户列表(可以进行多项选择)。当然,所有用户都可以手动选择,这非常好。
此外,我有用户组。大多数情况下,只需要选择组中的用户。因此,我希望通过单击组名称来添加所有用户。
我是select2的忠实粉丝,但我无法让它发挥作用。
我发现可以通过.val()函数元素进行选择。但是这些元素仅在选择了另一个元素时显示。
所以我需要一种更新功能。我怎么能这样做?
我试图触发事件(如更改),但没有成功。
你能帮助我吗?
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-rc.2/css/select2.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-rc.2/js/select2.full.js"></script>
<script type="text/javascript">
$("#id_invited_user").select2({
"placeholder": "Select user",
});
$("#testbuttonclick").on('click',function (clickEvent){
clickEvent.preventDefault();
$("#id_invited_user").val([1,2]);
});
</script>
<select multiple="multiple" class="selectmultiple form-control"
id="id_invited_user" name="invited_user">
<option value="1">Option1</option>
<option value="2">Option2</option>
<option value="3">Option3</option>
<option value="4">Option4</option>
<option value="5">Option5</option>
</select>
<a href="" id="testbuttonclick" >select predefined options</a>
答案 0 :(得分:0)
除了缺少一个重要细节外,您拥有所有正确的代码。
每当您更改Select2(或任何其他JavaScript组件)的值时,您应始终触发change
事件。当值更改时,浏览器会自动触发此事件,但必须在以编程方式更改值时手动触发此事件。
$("#id_invited_user").trigger("change");
这应该始终在您致电.val(xyz)
之后发出。