实时监听input输入的变化(兼容主流浏览器)
来源:互联网 发布:越南人 知乎 编辑:程序博客网 时间:2024/06/07 08:58
【转载】监听输入框的值,一般通过onchange/onkeyup/onkeypress/onkeydown实现,但是这存在着一些不好的用户体验。比如onchange事件只在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效;而onkeydown/onkeypress/onkeyup在处理复制、粘贴、拖拽、长按键(按住键盘不放)等细节上并不完善。
onpropertychange属性可在某些情况下解决上面存在的问题,不用考虑是否失去焦点,不管js操作还是键盘鼠标手动操作,只要HTML元素属性发生改变即可立即捕获到。遗憾的是,onpropertychange为IE专属的。其他浏览器下如果想要实现这一实时监听的需求,就要用到HTML5中的标准事件oninput,不过IE9以下的浏览器是不支持oninput事件的。
问题
实时监听input输入框的值
解决
由于项目HTML5支持也不是很友好,所以考虑使用onchange和onpropertychange来实现监听输入框的值。所以,还要先判断浏览器!!
举个栗子:
判断浏览器版本:
//判断非IE8及以下版本var ieTrue = true;var browser=navigator.appName;var b_version=navigator.appVersion;var version=b_version.split(";");if(version != "5.0 (Windows)"){var trim_Version=version[1].replace(/[ ]/g,""); }else{var trim_Version="firefox"; }if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0") { ieTrue = false;} else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE7.0") { ieTrue = false;} else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE8.0") { ieTrue = false;} else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE9.0") { ieTrue = true;}else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE10.0") { ieTrue = true;}else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE11.0") { ieTrue = true;}else{ieTrue = true;}
监听
function myFunction(){$("input[class='reorder']").each(function(){if(ieTrue == false){//ie8及以下 this.attachEvent('onpropertychange', function(e){ if(!$(this).is(":focus")){ if(e.propertyName == 'value'){ $(this).attr("value",function(){//改变值后要触发的代码 return $(this).val(); }); } } }); }else {//非ie和IE9以上 $(this).attr("value",function(){//改变值后要触发的代码 return $(this).val(); } } })}
阅读全文
0 0
- 实时监听input输入的变化(兼容主流浏览器)
- 实时监听input输入的变化(兼容主流浏览器)
- 实时监听input输入的变化
- H5:实时监听 input 输入框的值变化
- input输入框内容变化实时监听
- jq 实时监听input变化的值
- onpropertychange、oninput监听input输入框值实时变化
- 实时监听输入框值变化的完美方案(兼容ie):oninput & onpropertychange
- 如何实时监听 input 和 textarea输入框值的变化
- 实时监听UITextField的输入内容变化
- 监听input输入框的值得变化
- html实时监听input变化
- 监听input内容实时变化
- 实时监听input值变化
- 实时监听input值的变化,进行计算
- jquery实时监听input标签数字值的变化
- 兼容IE9以下的input实时监听例子
- JQUERY实时监听input值变化
- SQLServer中服务器角色和数据库角色权限详解
- sleep()与wait()
- C# 两个form之间传值、多播委托:委托可以指向多个函数
- cs231n 图像分类
- ViewPager 修改默认滑动偏移量
- 实时监听input输入的变化(兼容主流浏览器)
- 使用Markdown编辑器
- setinterval是同步还是异步的问题
- iOS中的Availability.h头文件
- Spring Boot集成Redis
- 计划任务crond
- 容易出错的“布尔值”判断
- Fragment异常:android.view.InflateException: Binary XML file line #35: Error inflating class fragment
- Android服务器——TomCat服务器的搭建