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 相关文章推荐
slice函数的用法 之不错的应用
Dec 29 Javascript
iframe父页面获取子页面参数的方法
Feb 21 Javascript
jQuery中removeAttr()方法用法实例
Jan 05 Javascript
ECMAScript6轮播图实践知识总结
Aug 17 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
Jun 16 Javascript
深入理解Vue transition源码分析
Jul 30 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
新手必须知的Node.js 4个JavaScript基本概念
Sep 16 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
Apr 16 Javascript
JS正则表达式封装与使用操作示例
May 15 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连接oracle数据库及查询数据的方法
2014/12/29 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
DOM精简教程
2006/10/03 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
vue的路由映射问题及解决方案
2019/10/14 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
Python 正则表达式(转义问题)
2014/12/15 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
python开发之thread线程基础实例入门
2015/11/11 Python
python执行精确的小数计算方法
2019/01/21 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
养殖项目策划书范文
2014/01/13 职场文书
美术教师岗位职责
2014/03/18 职场文书
补充协议书范本
2014/04/23 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
小学校园广播稿
2015/08/18 职场文书
单位提档介绍信
2015/10/22 职场文书
入党申请书怎么写?
2019/06/11 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript