Наконец, мне удалось найти решение, которое прекрасно работает для меня, как показано ниже:
/* Hide keyboard on select2 open event */
function hideSelect2Keyboard(e){
$('.select2-search input, :focus,input').prop('focus',false).blur();
}
$("select").select2().on("select2-open", hideSelect2Keyboard);
$("select").select2().on("select2-close",function(){
setTimeout(hideSelect2Keyboard, 50);
});
Протестировано на планшете и устройстве iOS.В функции hideSelect2Keyboard()
я искал все текущие элементы фокуса, включал поле ввода, которое можно использовать для инициализации select2, устанавливая .prop('focus',false)
, который удалит фокус и, следовательно, отключит всплывающее окно клавиатуры при событиях select2-open
и select2-close
путем создания цепочки.blur()
- удалить рамку фокуса с элемента.Затем я прикрепил эту функцию для выбора событий open
и close
, и она работает просто отлично.
Надеюсь, это поможет другим, кто ищет это, как и я тоже.Спасибо.