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

标签 javascript jquery 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() 返回一个包含所有三个地址的数组。

更新:我创建了一个 jsFiddle给你玩。像这样输入:

View of jsFiddle before pressing Send button

然后按发送键,你会看到:

View of jsFiddle after pressing Send

输出中缺少 test3@example.com

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

最佳答案

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

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

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

关于javascript - 如何在 select2 单选中触发标签创建(例如,按下相邻按钮时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39995979/

相关文章:

javascript - 使用 Knockout JS 进行数据绑定(bind)不起作用

javascript - 在javascript中分离出数组

javascript - 更换按钮不起作用

javascript - 打字时向数字添加逗号

javascript - 我们可以在按钮点击事件上使用 "window.setTimeout"吗?

javascript - 将点击事件附加到 .select2-result 中的元素

jquery - 如何同时查找数组中的两个值?

javascript - lightgallery.js slider 中的目标图像

javascript - 选择任何选项后如何更改选择菜单背景颜色|不是选项颜色

javascript - 从选择标签获取 javascript 中的值