我正在使用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的内容。我尝试在各种元素上发射几个事件,但都没有奏效。
我希望当我按下发送按钮时,我可以调用select2框来触发为搜索字段test3@example.com
中随后的内容创建标记,随后.val()
1}}返回一个包含所有三个地址的数组。
更新:我为您创建了jsFiddle。输入如下输入:
然后按“发送”按钮,您将看到:
输出中缺少test3@example.com
。
请注意,在我的实际应用程序中,我已禁用了下拉列表,因为我只想要标记行为。
答案 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