现在浏览器都会缓存一些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事件是只有当元素失去焦点且值变化时才会触发,对于缓存选择中填充值是无效的即使失去焦点