在焦点上打开select2

时间:2015-10-15 11:27:28

标签: javascript jquery

我想让用户能够使用tab键从输入更改为另一个。但是在select2上,tab键不起作用。如何在焦点上打开select2?

我试过了this solution,但它没有用。

jsFiddle

$('.js-select').select2({
     placeholder: "Select",
     width: "100%"
}).one('select2-focus', select2Focus).on("select2-blur", function () {
    $(this).one('select2-focus', select2Focus)
})

function select2Focus() {
    var select2 = $(this).data('select2');
    setTimeout(function() {
        if (!select2.opened()) {
            select2.open();
        }
    }, 0);  
}

2 个答案:

答案 0 :(得分:1)

我在链接的SO问题中尝试了很多方法,最后提出了以下对我有用的方法。我正在使用Select2 4.0.1,这是今天的最新版本。变量&#39;元素&#39;是您作为Select2的<select>元素。

$.data(element).select2.on("focus", function (e) {
    $(element).select2("open");
});

答案 1 :(得分:0)

我发现MR Lister和EriksonG的解决方案与select2 4.0.3(jsfiddle)完全不同,但稍作修改并清理了一点,效果非常好:

$('.js-select').each(function () {
    var s = $(this);
    s.data().select2.on('focus', function (e) {
        s.select2('open');
    });
});

jsfiddle demo