提前 感谢 两 件 事 :
1-如何 在 Select2 中 将 " Enter " 和 " Tab " 键 作为 令牌 ?
这 是 我 的 一些 代码 。
$("#ListaValores").val($("#ListaValores").val().replace(/\;/g,','))
$("#ListaValores").select2({
tags: true,
tokenSeparators: [';'],
maximumResultsForSearch: -1,
dropdownCss: {display:'none'},
});
中 的 每 一 个
第 一 行 只是 转换 输入 , 以便 Select2 可以 使用 数据 。
原始 输入 可以 是 这样 的 :
$("#ListaValores").val("value1;value2;value3")
格式
这些 值 存储 在 一 个 数据 库 中 , 并 加载 到 一 个 文本 框 中 , 然后 将 该 文本 框 转换 为 一 个 select2 。
一切 都 按 预期 工作 , 但 我 想 转换 此 部分 :
tokenSeparators: [';']
格式
因此 它 也 接受 " Enter " 和 " Tab " 键 作为 标记 。
有人 能 帮忙 吗 ? 我 试 过 ASCII 码 , 但 没有 运气 。
2-另外 , 是否 有 任何 标记 来 禁用 微调 图像 ? ( 因为 没有 数据 被 加载 , 我 真 的 不 需要 一 个 加载 图像 出现 )
更新 2 :
我 在 这 方面 取得 了 一些 成功 :
$("#s2id_ListaValores").on('keyup', function(e) {
if(e.keyCode === 13){
$("#ListaValores").val($("#ListaValores").val() + ';' + $("#s2id_autogen1").val())
}
});
格式
但是 $( " #s2id_autogen1 " ) . val ( ) 不是 静态 的 , 总是 在 变化 , 所以 这种 方法 只 工作 一 次 ... 另外 , 我 仍然 需要 更新 显示 的 结果 。 我 可以 在 select2 div 上 使用 " refresh " 来 更新 结果 , 但是 div 会 改变 它 的 id , 并且 $( " #s2id_ListaValores " ) . on ('keyup ' , function ( e ) 事件 将 不 起 作用 。
3条答案
按热度按时间zpjtge221#
我用递归函数解决了这个问题:
7rfyedvj2#
目前,在粘贴时,这在当前版本的select 2中是不可能的,因为它使用input type=“text”作为它的输入字段,并且浏览器在粘贴时会剥离换行符。
为了使这个工作,select 2将需要被打补丁,以使用一个文本区域代替。我有一个打开的拉请求来完成这一点,你可以在这里查看:https://github.com/select2/select2/pull/4795如果/当我的pull请求被合并进来时,你应该能够使用指定的字符作为tokenSeparators,但是在这之前,如果你愿意的话,你可以下载我的fork来解决你的问题。
9bfwbjaz3#
请 尝试 使用 以下 内容 作为 " enter " 和 " tab " 键 的 标记 分隔 符 。
中 的 每 一 个
" enter " 键 通常 会 触发 Select2 的 选择 , 但 换行符 ( " enter " 键 在 另 一 个 程序 中 " ) 不会 。 您 可以 使用
\n
来 指示 Select2 这些 字符 也应 被 视为 分隔 符 。Tab 键 也 会 出现 同样 的 情况 , 通常 它 应该 选择 当前 突出 显示 的 值 , 并且 在 从 另 一 个 源 加载 时 使用
\t
作为 分隔 符 。请 记住 , 只有 在 粘贴 需要 标记 化 的 数据 时 , 这种 差异 才 真正 重要 , 因为 Select2 绑定 了 这 两 个 键 , 会 自动 标记 化 它们 。