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 相关文章推荐
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
Dec 26 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
Apr 19 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
Jun 08 Javascript
js 动态加载事件的几种方法总结
Dec 25 Javascript
JavaScript登录验证码的实现
Oct 27 Javascript
js匿名函数使用&amp;传参(实例)
Sep 08 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
js实现通过开始结束控制的计时器
Feb 25 Javascript
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 21 Javascript
ES6中的类(Class)示例详解
Dec 09 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 curl模拟浏览器抓取网站信息
2013/10/28 PHP
php过滤敏感词的示例
2014/03/31 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
python同时遍历数组的索引和值的实例
2018/11/15 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
python爬取内容存入Excel实例
2019/02/20 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
opencv python如何实现图像二值化
2020/02/03 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
python 实现汉诺塔游戏
2020/11/28 Python
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
英语专业应届生求职信范文
2013/11/15 职场文书
博士研究生自我鉴定范文
2013/12/04 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL