如何在select2单选中触发标签创建(例如,当按下相邻按钮时)?

时间:2016-10-12 10:10:23

标签: javascript jquery select2

我正在使用select2 4.0.3。我有一个select2框用于输入电子邮件地址,我想确保所有电子邮件地址都包含在.val()中,也就是用户仍在搜索字段中输入的地址。

Form element

表单字段由$('.invite-emails-field')引用。当我按下发送按钮时,在事件处理程序$('.invite-emails-field').val()中,我只给出前两个地址test1@example.comtest2@example.com,但不是第三个地址(test3@example.com)。

这是我初始化select2元素的方法:

$('.invite-emails-field').select2({
  tags: true,
  tokenSeparators: [',', ' '],
  selectOnBlur: true
});

selectOnBlur无效,我找不到任何适用于select2 v4的内容。我尝试在各种元素上发射几个事件,但都没有奏效。

我希望当我按下发送按钮时,我可以调用select2框来触发为搜索字段test3@example.com中随后的内容创建标记,随后.val() 1}}返回一个包含所有三个地址的数组。

更新:我为您创建了jsFiddle。输入如下输入:

View of jsFiddle before pressing Send button

然后按“发送”按钮,您将看到:

View of jsFiddle after pressing Send

输出中缺少test3@example.com

请注意,在我的实际应用程序中,我已禁用了下拉列表,因为我只想要标记行为。

1 个答案:

答案 0 :(得分:6)

您需要添加selectOnClose并将其设置为true,以便在您关闭/点击搜索输入时为其创建标记。

$('select').select2({
  selectOnClose: true
});

请参阅此处的官方文档: https://select2.github.io/options.html#can-i-select-the-highlighted-result-when-the-dropdown-is-closed