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据option的value值快速设定初始的selected选项
Aug 13 Javascript
mapper--图片热点区域高亮组件官方站点
Dec 22 Javascript
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
JS onkeypress兼容性写法详解
Apr 27 Javascript
JS实现浏览上传文件的代码
Aug 23 Javascript
详解Angular系列之变化检测(Change Detection)
Feb 26 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
聊聊JS ES6中的解构
Apr 29 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
php5.2.0内存管理改进
2007/01/22 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
Python验证企业工商注册码
2015/10/25 Python
Python中字典的setdefault()方法教程
2017/02/07 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
Tesserocr库的正确安装方式
2018/10/19 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
python3跳出一个循环的实例操作
2020/08/18 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
找工作最新求职信
2013/12/22 职场文书
开工仪式主持词
2014/03/20 职场文书
实习指导老师评语
2014/04/26 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS