我们页面中经常需要监听input输入框的value值的变化,常用事件一般有onblur、onchange、oninput、onpropertychange。
但是实际使用中这些事件并不能满足要求,onblur、onchange事件都需要失去焦点后才能触发,而且onchange事件经常触发延迟,有时候达不到想要的效果。
onpropertychange事件能监非自定义属性值的变化,只能通过在html中定义onpropertychange或者通过attachEvent(“onpropertychange”,function(){})来添加;但是IE11不支持attachEvent方法了,而且html中直接定义onpropertychange也无效。只有IE10及以下才支持。而且IE9中有shan删除内容时不会触发。
oninput事件监听input的value属性值的变化,倒是能实时监听,E9及以上版本、EDGE、Google、火狐、都zh支持;但是必须通过鼠标、键盘触发,js改变value不能触发。
有一种兼容性写法示例是:
<input id="myInput" name="name" value="">
$('#myInput').bind('input propertychange', function() {
alert($('#myInput').val());
});
这样一次绑定两个事件,但是测试还是执行的oninput事件,只能通过鼠标、键盘触发。
onpropertychange事件说明的文档也没找到。
如果谁有好的实时监听方法,欢迎分享释疑!