提前致谢,有两件事:
1-如何将“Enter”和“Tab”键作为 Select2 中的 token ?
这是我的一些代码。
$("#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”键作为 token 。
有人可以帮忙吗?我尝试了 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 上的“刷新”来完成此操作,但随后 div 会更改它的 id,并且 $("#s2id_ListaValores").on('keyup', function(e) 事件将不起作用。
最佳答案
我通过递归函数解决了这个问题:
//init select2 field:
initMultiSelect(tSel);
function initMultiSelect(tSel) {
tSel.select2('destroy');
tSel.select2({
tags: true,
tokenSeparators: [',', ' ', ';'],
dropdownCss: {display:'none'}
});
//manual add new values by Enter
(function (t) {
$('#s2id_' + t.attr('id')).on('keyup', function(e) {
if(e.keyCode === 13){
//add new value
t.val(t.val() + ',' + $('#s2id_' + t.attr('id') + ' input ').val());
//refresh select2
initMultiSelect(t);
//get focus to select2 last position
t.select2("close");
t.select2("open");
}
});
})(tSel);
}
关于jquery - Select2 中的 tokenSeparators,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535315/