- 浏览: 193964 次
- 性别:
- 来自: QD
文章分类
- 全部博客 (127)
- Struts2 (8)
- Web (27)
- 计算机基础 (2)
- 面试 (2)
- JQuery (4)
- MySQL (1)
- SQL (1)
- AJAX (3)
- Java (17)
- Javascript (36)
- 情感 (0)
- Oracle (7)
- Spring (5)
- FreeMarker (2)
- JSON (1)
- 表达式 (1)
- 线程 (4)
- WebService (10)
- MyEclipse (2)
- LDAP (1)
- Tomcat (1)
- NIO (1)
- Linux (1)
- ExtJS (4)
- Android (1)
- Dojo (2)
- Maven (9)
- Ant (7)
- 分布式 (1)
- Intellij IDEA (1)
最新评论
-
northc:
米饭军 写道如果文件已存在怎样避免应该会覆盖的
用Ant scp往远程linux传文件 -
米饭军:
如果文件已存在怎样避免
用Ant scp往远程linux传文件 -
luis025:
不支持列隐藏 硬伤
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1) -
rgbhje:
楼主大神,我把你的代码简单改了一小下,在4.2可以跑了
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1) -
rgbhje:
楼主大神,我把你的代码简单改了一小下,在4.2可以跑了
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1)
当一个HTML元素的属性用js改变的时候,都能通过 onpropertychange来捕获。例如一个 <input name="text1" id="text1" />对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpropertychange却能够捕获。
也就 是说:onpropertychange事件在用键盘每改变一下文本框的值或用js改变其值便会触发一下,而onchange只有在用键盘改变其值,然后 在失去焦点(onblur)后才触发,用js改变其值不能触发!onpropertychange和onchange都不管文本框中的实际值有没有变,只 要有改的相应操作就可能触发。有时当上面两时间都不能满足需求时,可以考虑只用onblur。
还有一点要注意到,当onblur和 onchange事件一起用时,onblur会出问题。。。。详见如下
测试页面:
<html> <head> <title>通过js改变文本框中的值后触发的事件:onpropertychange事件 </title> </head> <body> <div id="test1"> <b> 测试onpropertychange事件和onchange事件一起用时: </b> <br> <font color="red">测试结果:onpropertychange事件在用键盘每改变一下文本框的值或用js改变其值便会触发一下,而 onchange只有在用键盘改变其值,然后在失去焦点后才触 发,用js改变其值不触发 </font> <br> <input name="haha1" type="text" onpropertychange="alert('触发了onpropertychange事件!')" onchange="alert('触发了onchange事件!')" size="30" > <input name="testbutton1" value="通过js改变文本框中的值" type="button" onclick="document.getElementById('haha1').value='js改变文本框后的值'"> <br> <br> <br> <div id="test2"> <b> 测试只有onblur和onchange事件时: </b> <br> <font color="red">测试结果:onchange先触发,onblur后触发 </font> <br> <input name="haha2" type="text" onblur="alert('触发了onblur事件!')" onchange="alert('触发了onchange事件!')" size="30" > <input name="testbutton2" value="通过js改变文本框中的值" type="button" onclick="document.getElementById('haha2').value='js改变文本框后的值'"> <br> <div> <br> <br> <br> <div id="test3"> <b>测试当onblur和onpropertychange事件一起用时: </b> <br> <font color="red">测试结果:onblur好象出了问题,只要用键盘在文本框中随便输入一个值,便会触发它。可能是 onpropertychange把它惹毛了。。。^-^ </font> <br> <input name="haha3" type="text" onblur="alert('触发了onblur事件!')" onpropertychange="alert('触发了onpropertychange事件!')" size="30" > <input name="testbutton3" value="通过js改变文本框中的值" type="button" onclick="document.getElementById('haha3').value='js改变文本框后的值'"> <br> <div> <br> <br> <br> <div id="test4"> <b>测试有onblur、onpropertychange事件和onchange事件 一起用时: </b> <br> <font color="red">测试结果:onblur在和onpropertychange一起用时的问题仍然存在 </font> <br> <input name="haha4" type="text" onblur="alert('触发了onblur事件!')" onpropertychange="alert('触发了onpropertychange事件!')" onchange="alert('触发了 onchange事件!')" size="30" > <input name="testbutton4" value="通过js改变文本框中的值" type="button" onclick="document.getElementById('haha4').value='js改变文本框后的值'"> <br> <div> </body> </html>
PS:以上测试在IE6中正确,在火狐中无效(解决办法如下)
IE下onpropertychange与firefox下oninput用法
onpropertychange能够捕获每次输入值的变化。例如:<INPUT id="test" name="test" />对象的value值被改变时,onpropertychange能够捕获每次改变,而onchange需要执行某个事件才可以捕获。
onpropertychange 不被firefox所支持,如果想在firefox下正常使用,需要用oninput属性,且需要用addEventListener来注册事件。
例子:
<html> <body> <div>oninput测 试</div> <div id="testdiv"><input id='tx1' name="tx1" value="" /></div> </body> </html> <script language="JavaScript"> <!-- function getOs(){//判断浏览器类型 var OsObject = ""; if(navigator.userAgent.indexOf("MSIE")>0) { return "MSIE"; } if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ return "Firefox"; } if(isSafari=navigator.userAgent.indexOf("Safari")>0) { return "Safari"; } if(isCamino=navigator.userAgent.indexOf("Camino")>0){ return "Camino"; } if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ return "Gecko"; } } if(navigator.userAgent.indexOf("MSIE")>0){ document.getElementById('tx1').attachEvent("onpropertychange",txChange); }else if(navigator.userAgent.indexOf("Firefox")>0){ document.getElementById('tx1').addEventListener("input",txChange2,false); } function txChange(){ alert("testie"); } function txChange2(){ alert("testfirefox"); } </script>
发表评论
-
Ext Toolbar换行
2012-06-21 09:02 01.var oneTbar=new Ext.Toolba ... -
禁止select控件選擇
2012-06-20 20:06 0禁止select控件選擇 大家知道, 對於HTML控件 ... -
几种压缩算法原理介绍
2012-05-25 20:04 1363先给出一个JS实现的ZIP:http://stuartk ... -
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1)
2012-03-12 17:00 10892需要将ExtJS Grid 导出 Excel 的同学可以试一试 ... -
Ext Js 4.x 扩展自己的XType
2012-03-03 14:26 1558如果想用自己定制的XType(比如这里想用一个Obj存 ... -
(转)Javascript中大括号“{}”的多义性
2012-02-25 11:21 1011JS中大括号有四种语义作用语义1,组织复合语句,这是最常 ... -
function sleep
2012-02-17 19:16 888//毫秒 (function sleep(t){ ... -
不用递归,循环算0-9999之和(js)
2012-02-17 19:15 895var i=0,sum=eval(new Arra ... -
Augment.js 为旧浏览器增加现代Javascript的功能支持
2012-01-18 12:06 1075index: http://olivernn. ... -
Javascript中的~和~~
2011-12-30 15:58 882<script type="text/j ... -
DOCTYPE! HTML PUBLIC 声明规范
2011-12-26 17:38 1284DOCTYPE的常用声明:按照 HTML 4.01 ... -
parentNode、parentElement,childNodes、children
2011-12-26 17:38 932parentNode、parentElement,childN ... -
关于JS中的constructor与prototype
2011-12-22 19:53 1013我们都知道,在JS中有一个function的东西。一般人 ... -
各浏览器对document.getElementById等方法的实现差异
2011-12-21 13:15 933本文来自:http://www.cnblogs.com/sna ... -
全世界最短的IE判定
2011-12-20 15:45 805var ie = !-[1,]; ... -
document.getElementsByClassName的理想实现
2011-12-20 14:41 1441来自: 司徒正美 blog http://www.cnblo ... -
浏览器支持的JS版本及JS对象图
2011-12-20 10:38 1083来自zh.wikipedia.org的JavaScript ... -
JS判断浏览器能力
2011-12-15 20:47 1054对象/特征检测法 该方法是一种判断浏览器能力(而非浏览器 ... -
onunload和onbeforeunload区别
2011-12-15 18:54 974Onunload,onbeforeunload都是在刷 ... -
收藏的两个多tab切换
2011-12-13 19:02 953留着可能以后有用
相关推荐
在JavaScript中,`onchange`、`onpropertychange` 和 `oninput` 是与用户交互相关的事件,它们各自有特定的触发条件,特别是在处理表单元素的键盘输入和JavaScript动态赋值时。以下是对这三个事件的详细解释: 1. `...
标题中的“onchange”和“onpropertychange”是JavaScript中两个与事件相关的属性,它们都是在HTML元素上触发特定行为的事件监听器。在本文中,我们将深入探讨这两个事件的区别、用法以及如何在实际开发中应用它们。...
在JavaScript中,`onchange` 和 `onpropertychange` 是两个不同的事件处理方式,它们各自在特定场景下有着不同的用途。本文将详细讲解这两个事件的区别以及如何解决 `onchange` 事件在某些情况下的无效问题。 `...
在 Web 开发中,了解 oninput、onpropertychange、onchange 三个事件的用法和区别非常重要,这三个事件都是用于检测用户输入的变化,但它们之间存在着一些关键的差异。 首先,让我们来了解 onchange 事件。当 ...
在IE下,可以用onpropertychange来代替onchange事件,当文本框有任何变化时,能立即触发此事件. 这样一来问题就解决了. 那其他浏览器呢,onpropertychange可是IE的专利. 接下来就是oninput事件了. 但是oninput有个诡异,...
onpropertychange和onchange都不管文本框中的实际值有没有变,只要有改的相应操作就可能触发。有时当上面两时间都不能满足需求时,可以考虑只用onblur。 还有一点要注意到,当onblur和onchange事件一起用时,onblur...
在了解如何监听输入框值的即时变化之前,我们需要了解onChange 和 onpropertychange 的不同。onChange 在属性值转变时还必需使得当前元素失去焦点(onblur)才可以激活该事件,onpropertychange 则可以在IE下捕获元素...
需要了解的知识 首先,我们需要了解onchange和onpropertychange的不同: IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来即时捕获。 onchange在属性值改变时还必须使得当前元素失去焦点(onblur...
对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpropertychange却能够捕获。 具体理解为:onpropertychange能及时捕获属性值的变化,而onchange在属性值改变时只有通过鼠标执行某些操作才能激活该...
1.onchange 及其onpropertychange,oninput 在IE下可使用onpropertychangel立即触发监听, oninput 可以使用在FF下,但必须使用w3c推荐的addEventListener的方式来绑定事件. //www.jb51.net/article/25275.htm2. <...
在JavaScript中,处理DOM元素状态变化的事件有多种,其中包括`onpropertychange`、`onchange`和`oninput`。这些事件在不同浏览器中有着不同的表现和兼容性,尤其是在Internet Explorer (IE) 和 Firefox之间。 `...
综上所述,文章详细讲述了在Web开发中如何使用不同的JavaScript事件来监听input元素的值变化,并提供了多种方法来确保代码在不同浏览器中的兼容性和功能的完整性。这使得文章成为了一个很好的资源,供前端开发人员在...
由于onpropertychange事件在IE浏览器中的表现和其他浏览器略有不同,开发者应当谨慎使用并测试在主要目标浏览器中的表现。在编写代码时,还要注意识别并修正文档扫描时可能出现的OCR错误,保证代码的准确性。
本文将围绕onchange事件在微软的Internet Explorer(简称IE)和Mozilla Firefox(简称FF)浏览器中的表现差异进行讨论,并提供相应的解决方案。 首先,onchange事件是一个非常常用的事件,它在元素值发生改变并失去...