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 相关文章推荐
YUI模块开发原理详解
Nov 18 Javascript
教你使用javascript简单写一个页面模板引擎
May 05 Javascript
JS获取及验证开始结束日期的方法
Aug 20 Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
详解JavaScript栈内存与堆内存
Apr 04 Javascript
javascript实现文字跑马灯效果
Jun 18 Javascript
openlayers4实现点动态扩散
Aug 17 Javascript
jQuery实现评论模块
Aug 19 jQuery
原生js实现贪吃蛇游戏
Oct 26 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
jquery实现广告上下滚动效果
Mar 04 jQuery
详解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 fsockopen写的HTTP下载的类
2007/02/22 PHP
深入解析php之apc
2013/05/15 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
zf框架的校验器InArray使用示例
2014/03/13 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
python无序链表删除重复项的方法
2020/01/17 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
减负增效提质方案
2014/05/23 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server