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 相关文章推荐
jquery等宽输出文字插件使用介绍
Sep 18 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
js登录弹出层特效
Mar 07 Javascript
jQuery中[attribute=value]选择器用法实例
Dec 31 Javascript
AngularJS 服务详细讲解及示例代码
Aug 17 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
jQuery Ajax前后端使用JSON进行交互示例
Mar 17 Javascript
JS简单实现获取元素的封装操作示例
Apr 07 Javascript
javascript简单写的判断电话号码实例
May 24 Javascript
js保留两位小数方法总结
Jan 31 Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 Javascript
Vue-axios-post数据后端接不到问题解决
Jan 09 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通过cookies获取远程网页的指定代码
2013/06/25 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
Mac下安装vue
2018/04/11 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python网络编程学习笔记(一)
2014/06/09 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
python实现京东秒杀功能
2018/07/30 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python中bytes和str类型的区别
2019/10/21 Python
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
餐饮加盟计划书
2014/01/10 职场文书
美容院经理岗位职责
2014/04/03 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle