jquery - Select2 中的 tokenSeparators

标签 jquery jquery-select2

提前致谢,有两件事:

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/

相关文章:

javascript - 以动态形式更改时从多个选择中获取选定值

Javascript数组父子结构

javascript - 当选择新值时,select2 初始值将被替换

javascript - 我一直在使用 jQuery 来解析 XML,但它不保持大写。我缺少一面旗帜吗?

javascript - Bootstrap 模态弹出窗口中的部分 View

javascript - 如何记录在 select2 输入字段中键入的内容并最终更新另一个输入字段?

javascript - 在 React js 中使用 Reactstrap 从多个选择下拉列表中动态选择选项

javascript - 在 Controller 之间传递变量并在同一页面上使用 ng-repeat

jquery - FullCalendar突出显示行

javascript - 如果选中所有复选框,则启用 JQuery 按钮并将 css 添加到禁用按钮