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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
心扬JS分页函数代码
Sep 10 Javascript
jquery验证表单中的单选与多选实例
Aug 18 Javascript
判定是否原生方法的JS代码
Nov 12 Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 Javascript
javascript 分号总结及详细介绍
Sep 24 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
微信小程序自动客服功能
Nov 02 Javascript
利用nginx + node在阿里云部署https的步骤详解
Dec 19 Javascript
深入探讨JavaScript的最基本部分之执行上下文
Feb 12 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
May 21 Javascript
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
详解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 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
python中的装饰器详解
2015/04/13 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
儿童python练习实例
2018/05/27 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
python中列表的含义及用法
2020/05/26 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
美国最大网上鞋店:Zappos
2016/07/25 全球购物
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
爱普生美国官网:Epson美国
2018/11/05 全球购物
PHP经典面试题
2016/09/03 面试题
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
会计学专业求职信
2014/07/17 职场文书
超市周年庆活动方案
2014/08/16 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
培训班通知
2015/04/25 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP