关于onpropertychange与oninput的用法,网上一大堆,但还是有不兼容的时候,比如说,我想计下,一个input的值改变了多少次,如果写成兼容写法就为

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>onpropertychange与oninput事件</title>
<script type="text/javascript">
window.onload = function(){
oTxt1 = document.getElementById('input1');
oTxt2 = document.getElementById('input2');
oBtn = document.getElementById('btn');
var i=0;
oTxt1.oninput = oTxt1.onpropertychange = function(){
console.log(arguments.length)
for(var j = 0; j< arguments.length; j++){
console.log(arguments[j])
}
i+=1
oTxt2.value = i
} oBtn.onclick = function(event){
var oEvent = window.event || event;
oTxt1.setAttribute('good','hello')
}
}
</script>
</head>
<body>
<input type="text" id="input1" placeholder='请输入……'/>
<input type="text" id="input2" placeholder='请输入……'/>
<button value="changeProperty" id="btn">改变属性</button>
</body>
</html>

刷新浏览器,在chrome与firefox中,你会发现oTxt1的值还是为'请输入……',而IE中,你发现为2,图如下

假如你改变一下oTxt1的值,最大的变化出现了。chrome与firefox中oTxt2的值为1,IE出现了出现了两种不同的值,IE9以下的每改变一次只会+1,但IE9及以上的由于支持oninput,所以被执行了两次,因此,会以+2的增值进行,如图: 

而且,按照网上的说法,在IE中可以根据argument来获取参数个数及参数情况,据上图,还发现,ie9中,传给回调函数一事件object,但在IE9以下,是没有参数传递的。这点也值得注意;

onpropertychange中的问题有以下几点,

1.如果设置了onpropertychange,那就改变了元素的一个属性,因此,会自动执行一次;

2.在IE9中,键盘delete删除一个字符,不会触发这个事件;

3.如果动态改变一个input(类似的)的值及属性,会触发两次事件,但可以通过event 的 propertyName 属性来获取发生变化的属性名称,进而进行下一步操作;

关于onpropertychange与oninput的兼容问题的更多相关文章

  1. 兼容Firefox和IE的onpropertychange事件oninput

    原文 兼容Firefox和IE的onpropertychange事件oninput onpropertychange能够捕获每次输入值的变化.例如:对象的value值被改变时,onpropertych ...

  2. js监听输入框值的即时变化onpropertychange、oninput

    js监听输入框值的即时变化onpropertychange.oninput 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感. // //   要达到的效果 ...

  3. 使用 onpropertychange 和 oninput 检测 input、textarea输入改变

    检测input.textarea输入改变事件有以下几种: 1.onkeyup/onkeydown 捕获用户键盘输入事件. 缺陷:复制粘贴时无法检测 2.onchenge 缺陷:要满足触发条件:当前对象 ...

  4. 同时绑定onpropertychange 和 oninput 事件,实时检测 input、textarea输入改变事件,支持低版本IE,支持复制粘贴

    实时检测 input.textarea输入改变事件,支持低版本IE,支持复制粘贴 检测input.textarea输入改变事件有以下几种: 1.onkeyup/onkeydown 捕获用户键盘输入事件 ...

  5. 监听HTML input输入框值的即时变化onpropertychange、oninput兼容IE,Chrome,FF,Opera等

    转自:http://blog.csdn.net/itchiang/article/details/7769337 要达到的效果 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增 ...

  6. JS监听输入框值变化兼容 onpropertychange、oninput

    onpropertychange 属IE oninput 属除IE外(Chrome.Firefox.SS) 所以肯简单的办法嘛: 1. 一个input里面写两个属性事件 2.写在JS中判断浏览器添加监 ...

  7. asp.net,监听输入框值的即时变化onpropertychange、oninput

    作者:自由天堂发布站点:WEB六零零 网页设计制作原文地址:http://www.web600.net/html/editor/JavaScript/201001131529.html 要达到的效果 ...

  8. onchange onpropertychange 和 oninput 事件的区别

    onchange 事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发. onpropertychange 事件却是实时触发,即每增加或删除一个字符就会触发,通过 js 改变也会触发该事件,但是 ...

  9. 总结oninput、onchange与onpropertychange事件的用法和区别

    前端页面开发的很多情况下都需要实时监听文本框输入,比如腾讯微博编写140字的微博时输入框hu9i动态显示还可以输入的字数.过去一般都使用onchange/onkeyup/onkeypress/onke ...

随机推荐

  1. ubuntu14.04中解压缩window中的zip文件,文件名乱码的解决方法

    在windows上压缩的文件,是以系统默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 通过unzip行命令解压,指定字符 ...

  2. Scala学习文档-各种使用模式的情况

    模式在变量定义中 在定义val或者var的时候,可以使用模式替代简单的标识符,如可以使用模式拆分元组,并把每个值分配给变量 val myTuple = (123,"abc") va ...

  3. 遍历ArrayList与LinkedList,使用FOR与迭代器的区别

    网上结论: 如果是链表结构的集合,如LinkedList,则使用迭代器遍历,速度会更快(顺序获取). 如果是数组结构的,如ArrayList,则使用for循环会更快(随机获取) 测试代码: packa ...

  4. Android中图片的目录

    图片放在hdpi及在mdpi中的效果是不一样的 http://blog.csdn.net/loongggdroid/article/details/9469935

  5. hex和bin文件格式的区别

    Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量.Intel HEX文件经常被用于将程序或数据传输存储到 ...

  6. How to find friends

    How to find friends 思路简单,编码不易 1 def check_connection(network, first, second): 2 link_dictionary = di ...

  7. Spring使用小结2

    之前做过不少spring想过知识点内容的摘录, Spring框架的特点.模块组成.优缺点 spring相关的bean管理想过知识点及依赖注入方式 今天说下近端时间中项目中遇到的相关印象比较深的知识点 ...

  8. Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件

    本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框.   Eclipse代码自动补全功能默认只包括 点"."  ,即只有输入”." ...

  9. Find the largest multiple of 3 解答

    Question Given an array of non-negative integers. Find the largest multiple of 3 that can be formed ...

  10. POJ3669(Meteor Shower)(bfs求最短路)

    Meteor Shower Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12642   Accepted: 3414 De ...