【问题标题】:jquery-select2: selection of multiple options at once with a buttonjquery-select2:使用按钮一次选择多个选项
【发布时间】:2015-04-13 20:19:11
【问题描述】:

我有一个可以选择的用户列表(可以多选)。当然所有用户都可以手动选择,非常棒。

进一步说我有用户组。大多数时候,只需要选择组中的那些用户。因此,我希望有一种添加所有用户的快捷方式,只需单击组名即可。

我是 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>

【问题讨论】:

标签: javascript jquery jquery-select2


【解决方案1】:

您拥有所有正确的代码,只是缺少一个重要细节。

无论何时更改 Select2(或任何其他 JavaScript 组件)的值,都应始终触发 change 事件。此事件在值更改时由浏览器原生触发,但在以编程方式更改值时必须手动触发。

$("#id_invited_user").trigger("change");

这应该始终放在您致电.val(xyz) 之后。

【讨论】:

  • 感谢您的回答。即使在我添加了这个之后,它一开始也没有工作。过了一会儿,我发现我加载了第二个 jquery 版本(通过另一个插件)。我不记得我到底做了什么,但是在清理了 js 代码并删除了其他插件之后它工作了。 :D
猜你喜欢
  • 2018-11-09
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多