JS实现移动端实时监听输入框变化的实例代码


Posted in Javascript onApril 12, 2017

如果是在pc端,监听输入框你可能想到focus、blur、hover、onkeyup这些事件,但是如果是在移动端使用使用这些事件用户体验极差,因为你要用户收起键盘并且再点个空白处才生效,甚至还存在很大的兼容差异。那么怎么解决呢?

方案一

以前做一个简单的模糊搜索框的需求,大致思路是定义一个1s左右执行的定时器,定时器函数里面的逻辑是 判断文本框内容的长度,如果跟上一次长度有变化,就走一遍查询,如果没有变化不执行任何操作。

方案二

利用jquery提供的 input propertychange 事件监听,同时也是判断文本框长度变化,执行查询操作。

显然如果做类似实时响应的模糊查询时,貌似两个方案都差不多,但是如果要实现下面这个效果图的功能时方案二是最优选

JS实现移动端实时监听输入框变化的实例代码

如上效果图,没次我在文本框输入内容即实时打印文本长度,当长度满足11且正则校验是正确手机号时,“获取验证码”按钮高亮,且点击事件生效。这是移动端注册类发短信常用的功能,核心代码如下:

.code-highlight {
  background-color: #eba612;
}
.code-readonly {
  background-color: #262523;
}
.not-active {
  background-color: #aca9a7;
}
<input class="li-input" type="tel" autocomplete='off' name="telInput" id="telInput" placeholder="请输入您的手机号">
$(document)
.on('input propertychange','#telInput',function (e) {
  if (e.type === "input" || e.orignalEvent.propertyName === "value") {
    console.log(this.value.length)
    if(this.value.length == 11){
      var myreg = /^1\d{10}$/;
      if(!myreg.test(this.value)){
        common.tips({msg:'请输入正确手机号'});
        return;
      }
      $('#getCodeBtn').removeClass('not-active').addClass('code-highlight');
      self.options.tel = true;
    }else{
      $('#getCodeBtn').addClass('not-active').removeClass('code-highlight');
      self.options.tel = false;
    }
  }
})

重点是jquery提供的input propertychange这个事件,如果觉得可以,不妨改善下现有的发短信吧,以前我也是用的blur事件..

以上所述是小编给大家介绍的JS实现移动端实时监听输入框变化的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript web页面刷新的方法收集
Jul 02 Javascript
绑定回车enter事件代码
May 18 Javascript
jQuery事件绑定和委托实例
Nov 25 Javascript
js只执行1次的函数示例
Jul 20 Javascript
Bootstrap Table使用方法解析
Oct 19 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 Javascript
解决vue项目打包后提示图片文件路径错误的问题
Jul 04 Javascript
vue基于element的区间选择组件
Sep 07 Javascript
说说如何使用Vuex进行状态管理(小结)
Apr 14 Javascript
vue-router 路由传参用法实例分析
Mar 06 Javascript
详解vue的数据binding绑定原理
Apr 12 #Javascript
angular学习之ngRoute路由机制
Apr 12 #Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 #Javascript
微信小程序登录态控制深入分析
Apr 12 #Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
Apr 12 #Javascript
微信小程序微信支付接入开发实例详解
Apr 12 #Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 #Javascript
You might like
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php获取错误信息的方法
2015/07/17 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
JsChart组件使用详解
2018/03/04 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
[20:30]职业巡回赛回顾
2018/08/09 DOTA
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python实现远程调用MetaSploit的方法
2014/08/22 Python
Python base64编码解码实例
2015/06/21 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
JSP&Servlet技术面试题
2015/05/21 面试题
护理人员的自我评价分享
2014/03/15 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle