【问题标题】:Open select2 on focus在焦点上打开 select2
【发布时间】:2016-01-13 20:09:05
【问题描述】:

我想让用户能够使用 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);  
}

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    我在链接的 SO 问题中尝试了多种方法,最后想出了对我有用的以下方法。我正在使用 Select2 4.0.1,它是今天最新的。变量“元素”是您作为 Select2 拥有的 <select> 元素。

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

    【讨论】:

      【解决方案2】:

      我发现 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

      【讨论】:

        猜你喜欢
        • 2014-01-26
        • 2015-10-04
        • 2018-09-20
        • 2021-06-23
        • 2015-06-07
        • 1970-01-01
        • 2015-08-16
        • 1970-01-01
        • 2019-03-16
        相关资源
        最近更新 更多