IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来即时捕获。
onchange在属性值改变时还必须使得当前元素失去焦点(onblur)才可以激活该事件。
了解这一点后我们发现onpropertychange的效果就是我们想要的,可是很遗憾,它只在IE下有效果。我们能不能找到另外一个时间来代替onpropertychange呢?
经过翻阅资料得知,在其他浏览器下可以使用oninput事件来达到同样的效果,真是太好了,我们只需要把IE浏览器区分出来就可以。
如果您是将注册时间直接写在页面里面,那么如下写法就可以实现:
oninput="alert(this.value);" onpropertychange="alert(this.value)"
propertyname:就是用来获取哪个属性被修改的。
<input type="text" value="xxx" id="xx" onclick="this.myprop=‘xx‘"> <script type="text/javascript"> document.getElementById(‘xx‘).attachEvent(‘onpropertychange‘,function(o){ //遍历 for(var item in o){ alert(item+":"+o[item]); } //弹出属性和值 alert(o.propertyName); }); </script>
onchange="window.alert(‘触发事件,处理事情‘)"
onkeypress=" if(event.keyCode==13) { window.alert(‘触发事件,处理事情‘); return false;}" //回车触发事件并处理
注: 在onkeypress事件中必须加入 return false;语句 主要避免input中的输入项丢失。
时间: 2024-10-12 05:18:08