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 相关文章推荐
JS 拼图游戏 面向对象,注释完整。
Jun 18 Javascript
jQuery中绑定事件的命名空间详解
Apr 05 Javascript
浅析return false的正确使用
Nov 04 Javascript
深入解析JavaScript中的变量作用域
Dec 06 Javascript
jquery实现焦点图片随机切换效果的方法
Mar 12 Javascript
jquery中toggle函数交替使用问题
Jun 22 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
javascript设计简单的秒表计时器
Sep 05 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
详解Node.js利用node-git-server快速搭建git服务器
Sep 27 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
微信小程序时间选择插件使用详解
Dec 28 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缓存类分享     php缓存机制
2014/01/22 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
js+css在交互上的应用
2010/07/18 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
EJB发布WEB服务一般步骤
2012/10/31 面试题
Java面试题汇总
2015/12/06 面试题
教师求职信范文分享
2013/12/27 职场文书
社会实践感言
2014/01/25 职场文书
银行类自荐信
2014/02/04 职场文书
洗手间标语
2014/06/23 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
升学宴祝酒词
2015/08/11 职场文书
公司管理建议书
2015/09/14 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL