我试图禁用内部输入搜索的自动聚焦,select2
尤其是在移动设备上以禁用键盘弹出窗口。但是,如此处所述:
select2不会触发本机事件。select2 也不会触发事件的非本地版本,这不是问题,因为我们仍然可以选择添加本地事件而不破坏兼容性。
所以我能做的唯一方法是尝试让 select2 中的每个输入框当前处于焦点状态并设置失去焦点,但没有运气。
$("select").select2().on("select2-open",":input",function(){
setTimeout(function(){
$(":focus").blur();
}, 50);
});
我有没有可能达到上述结果?谢谢。
最后,我设法找到了对我来说很好用的解决方案,如下所示:
/* 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
和它工作得很好。
我希望这也能帮助其他像我一样寻找这个的人。谢谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句