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 相关文章推荐
document.designMode的功能与使用方法介绍
Nov 22 Javascript
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
js数组的基本操作(很全自己整理的)
Oct 16 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
Jun 23 Javascript
基于javascript实现动态显示当前系统时间
Jan 28 Javascript
jquery实现左右滑动式轮播图
Mar 02 Javascript
vue实现动态数据绑定
Apr 28 Javascript
angular4模块中给标签添加背景图的实现方法
Sep 15 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
Sep 20 Javascript
对layui中表单元素的使用详解
Aug 15 Javascript
Vue组件创建和传值的方法
Aug 17 Javascript
Vue axios 跨域请求无法带上cookie的解决
Sep 08 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 取得瑞年与平年的天数的代码
2009/08/10 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
Open and Print a Word Document
2007/06/15 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
Python 机器学习库 NumPy入门教程
2018/04/19 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
Python中函数的返回值示例浅析
2019/08/28 Python
Python编写打字训练小程序
2019/09/26 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
学雷锋宣传标语
2014/06/25 职场文书
结对共建协议书
2014/08/20 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
vscode中使用npm安装babel的方法
2021/08/02 Javascript
Nginx报404错误的详细解决方法
2022/07/23 Servers