手机端H5页面在input输入框获得焦点时禁止唤起键盘

Posted mooncher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机端H5页面在input输入框获得焦点时禁止唤起键盘相关的知识,希望对你有一定的参考价值。

一、平台

手机移动端

二、实现的效果

当input输入框获得焦点时,在保留光标的情况下,又不让手机虚拟键盘弹起

刚开始在网上找了一番,网上的回答大都自以为是,根本没有弄清诉求,他们提供的三种解决方法,把input框用div代替、给input框设readonly属性、input获得焦点时使其失去焦点,统统都达不到我想要这种效果

好在后来还是让我找到了一位志同道合的博友,他的处境和我几乎一样,而且他的解决办法也十分有效

这是他的原文地址:https://blog.csdn.net/DACBE/java/article/details/89343053

这么方便有效的办法,居然没被发扬光大,所以我在这里再稍微加点扩散影响力,让更多的同仁看到

以下套路,原作者是用VUE实现的,我这里就结合自己的需求,改了一个jquery的版本,代码不多,大家一看就懂

<input type="text" placeholder="输入文字试试" id="test" onfocus="stopKeyborad($(this))">
<script type="text/javascript" src="../../script/jquery.min.js"></script>
<script type="text/javascript">
function stopKeyborad(obj)
    {
      obj.attr(readonly, readonly);
  setTimeout(function() {
    obj.removeAttr(readonly);
  }, 200);
    }
</script>

其实就是在短时间内完成了这几步--》1.在触发焦点事件时将input设为readonly,避免系统唤起虚拟键盘——》2.等待短暂的200毫秒后,再将input输入框的readonly去掉——》3.这时光标还会在input上

如果还不能理解,就去看看原文作者的说法,我也是借花献佛

以上是关于手机端H5页面在input输入框获得焦点时禁止唤起键盘的主要内容,如果未能解决你的问题,请参考以下文章

Vue中输入框自动获取焦点-移动端ios不能唤起键盘解决办法

Vue中输入框自动获取焦点-移动端ios不能唤起键盘解决办法

iscroll4 input textarea不能获得焦点问题

小技巧|H5禁止手机虚拟键盘弹出

h5 解决ios端输入框失去焦点后页面不回弹或者底部留白问题

HTML5页面,用JS 禁止弹出手机键盘