Итак, это решение, которое я выбрал:
select{
display: block !important;
left: -9999;
position: absolute !important;
}
Если вы установите top: -9999, страница перейдет к вершине, когда элемент получит фокус, поэтому я пропустил это.Я повторно использую оригинальные элементы select, к которым применяется плагин selectmenu.Важные операторы используются для переопределения стилей элементов, применяемых плагином.
Плагин selectmenu автоматически устанавливает фокус на элемент a, поэтому не требуется JavaScript для фокусировки на выпадающем списке при выборепункт ориентирован.Однако это делает невозможным переход назад (со сдвигом), так как это изменит фокус с пользовательского элемента на исходный элемент, который возвращает фокус на пользовательский элемент.
Я решил эту проблему следующим образом:
$('.ui-selectmenu').on('keydown', function(e){
if(e.shiftKey && e.keyKode === 9){
var all = $(':input'),
el = $(this).parent().prev('select'),
i = all.index(el);
all.eq(i).focus();
});
Здесь я сохраняю все входные данные в переменной, нахожу свой элемент select и устанавливаю фокус на предыдущий элемент.