Открытое раскрывающееся меню jquery select2 прерывает tabindex

Из-за устаревшего интерфейса я получил этот хакерский слушатель для открытия моего раскрывающегося списка select2 (v4.0) при фокусировке на элементе select. Он работает просто отлично, за исключением того факта, что мой tabindex каким-то образом возвращается к 1, когда я нажимаю вкладку на открытом select2. Как я могу сделать так, чтобы мой раскрывающийся список закрывался, а ввод № 4 был сфокусирован, когда я нажимаю вкладку из открытого раскрывающегося списка?

var openedSelectEl;
// open select2 dropdown on focus
$(document).on('focus', 'select:enabled + span .select2-selection--single', function(e) {
    openedSelectEl = $(this).parent().parent().siblings('select');
    openedSelectEl.select2('open');
});

$("#3").select2({
  data: [{
    id: 'f00',
    text: 'f00'
  }, {
    id: 'b4r',
    text: 'b4r'
  }, {
    id: 'b4z',
    text: 'b4z'
  }]
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<div><input type="text" id="1" tabindex="1" /></div>
<div><input type="text" id="2" tabindex="2" /></div>
<div><select name="2"   id="3" tabindex="3"></select></div>
<div><input type="text" id="4" tabindex="4"/></div>


person Dani    schedule 14.02.2017    source источник


Ответы (2)


Думаю стоит попробовать это:

$(yourSelectSelectors).on("select2:close", function (e) {
    e.target.focus();
});`

Документация по событиям

person Raptor    schedule 26.07.2017

Опираясь на отличный ответ zDaniels на этот вопрос

Я создал прокладку для установки Bower, которая решит проблему с индексом вкладки select2.

$ bower install select2-tab-fix

Исходники и документация на

https://github.com/peledies/select2-tab-fix

person Deac Karns    schedule 15.03.2017