如何在 select2 单个 select 中触发标签创建(例如,当相邻按钮被按下时)?
How to trigger tag creation in select2 single select (e.g. when adjacent button is pressed)?
我正在使用 select2 4.0.3。我有一个用于输入电子邮件地址的 select2 框,我想确保所有电子邮件地址都包含在 .val()
中,也是用户仍在搜索字段中输入的地址。
表单字段被 $('.invite-emails-field')
引用。当我按下发送按钮时,在事件处理程序中 $('.invite-emails-field').val()
只给我前两个地址 test1@example.com
和 test2@example.com
,而不是第三个地址 (test3@example.com
)。
这是我初始化 select2 元素的方式:
$('.invite-emails-field').select2({
tags: true,
tokenSeparators: [',', ' '],
selectOnBlur: true
});
selectOnBlur
没有效果,我找不到任何其他适用于 select2 v4 的东西。我尝试在各种元素上触发多个事件,none 有效。
我希望当我按下“发送”按钮时,我可以调用 select2 框来触发为搜索字段 test3@example.com
中的内容创建标签,随后.val()
returns 一个包含所有三个地址的数组。
更新:我创建了一个 jsFiddle 供您使用。像这样输入:
然后按发送按钮,您将看到:
输出中缺少 test3@example.com
。
请注意,在我的实际应用程序中,我禁用了下拉菜单,因为我只想要标记行为。
您需要添加 selectOnClose
并将其设置为 true
以便在您关闭/单击搜索输入时它会为您创建标签。
$('select').select2({
selectOnClose: true
});
我正在使用 select2 4.0.3。我有一个用于输入电子邮件地址的 select2 框,我想确保所有电子邮件地址都包含在 .val()
中,也是用户仍在搜索字段中输入的地址。
表单字段被 $('.invite-emails-field')
引用。当我按下发送按钮时,在事件处理程序中 $('.invite-emails-field').val()
只给我前两个地址 test1@example.com
和 test2@example.com
,而不是第三个地址 (test3@example.com
)。
这是我初始化 select2 元素的方式:
$('.invite-emails-field').select2({
tags: true,
tokenSeparators: [',', ' '],
selectOnBlur: true
});
selectOnBlur
没有效果,我找不到任何其他适用于 select2 v4 的东西。我尝试在各种元素上触发多个事件,none 有效。
我希望当我按下“发送”按钮时,我可以调用 select2 框来触发为搜索字段 test3@example.com
中的内容创建标签,随后.val()
returns 一个包含所有三个地址的数组。
更新:我创建了一个 jsFiddle 供您使用。像这样输入:
然后按发送按钮,您将看到:
输出中缺少 test3@example.com
。
请注意,在我的实际应用程序中,我禁用了下拉菜单,因为我只想要标记行为。
您需要添加 selectOnClose
并将其设置为 true
以便在您关闭/单击搜索输入时它会为您创建标签。
$('select').select2({
selectOnClose: true
});