现在浏览器都会缓存一些input框输入的内容,这些内容只是为了以后填写方便,一般是点击两次input框就会显示像下拉框一样的选项框,但在这个框里选择的值被填充到input框中时不会触发chang,focus,blur,click,dblclick等常用事件,如果需要当用户选择缓存中的某一个缓存项时触发一个事件,用于提取数据或其它操作时常规事件是做不到的。
后来找了一些文档找到了几个不常用或者是专用性的事件:
oninput和onpropertychange
oninput 事件是当input元素的value值发生变化时就触发【只针对inpu(textarea)的value属性】
onpropertychange 事件是当dom元素的属性值发生变化时就触发【针对整个dom节点】
这两个属性虽然主要的目的不一样,但用于触发input框缓存选择很有用。
只是这两个事件有兼容问题
oninput 事件则支持FF/Opera/Safari/NetScape
onpopertychange 事件只在IE下才有效
所以在正常使用中会把两个事件同时添加,
使用JQuery时:$('input').bind('input propertychange',function(){alert(this.value)});
使用元素事件属性:
document.getElementById('input').oninput=function(){alert(this.value)}
document.getElementById('input').onpopertychange=function(){alert(this.value)}
注意:onchange事件是只有当元素失去焦点且值变化时才会触发,对于缓存选择中填充值是无效的即使失去焦点
本文转自 ttlxihuan 51CTO博客,原文链接:http://blog.51cto.com/php2012web/1579960