码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2020-07-15 23:08:25      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:焦点事件   ace   方法   detail   input框   需求   页面   代码   fun   

一、平台

手机移动端

二、实现的效果

当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输入框获得焦点时禁止唤起键盘

标签:焦点事件   ace   方法   detail   input框   需求   页面   代码   fun   

原文地址:https://www.cnblogs.com/mooncher/p/13307227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!