【问题标题】:How to trigger tag creation in select2 single select (e.g. when adjacent button is pressed)?如何在 select2 单选中触发标签创建(例如按下相邻按钮时)?
【发布时间】:2016-10-12 10:10:22
【问题描述】:

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

表单域由$('.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 供您使用。像这样输入:

然后按下发送按钮,你会看到:

输出中缺少test3@example.com

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

【问题讨论】:

  • 你能创造一个我们可以演示的小提琴吗?
  • @SamHolmes 感谢您对此进行调查,我创建了一个显示问题的最小 jsFiddle 并将其添加为我的问题的更新。链接是jsfiddle.net/cn19gmfq
  • 那个小提琴不允许我输入像a@b.com 这样的电子邮件地址 - 在@ 符号之后我无法继续输入任何内容。你如何输入它们?

标签: javascript jquery select2


【解决方案1】:

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

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

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

【讨论】:

  • 它有效,谢谢!我敢肯定,尽管在某些时候我尝试过,但无论如何...顺便说一句,最近在 select2 上度过了一些美好的时光:是我自己还是 select2 v4 上的文档严重缺乏?我不会通过您发布的链接的标题猜到此选项与我的问题有关。我没有考虑“关闭下拉菜单”(实际上我已经在我的实际网站上禁用了它,因为我只想要标记行为),我只是在表单上的其他地方按下另一个按钮并想阅读所有选择框中的当前值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多