原生JS中能够使用oninput,onpropertychange,onchange浏览器
oninput,onpropertychange,onchange的用法测试
1) onchange 触发事件必须知足两个条件:this
a)当前对象属性改变,而且是由键盘或鼠标事件激发的(脚本触发无效)spa
b)当前对象失去焦点(onblur);firefox
2) onpropertychange ,只要当前对象属性发生改变,都会触发事件,可是它是IE专属的;3d
3) oninput 是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不一样,它绑定于对象时,并不是该对象全部属性改变都能触发事件,它只在对象value值发生改变时奏效。
code
亲自测试对象
Ie9如下经过 onpropertychange能监听到input值的改变blog
在Ie9,及其以上和谷歌浏览器测试时经过 oninput 来监测值的改变事件
JQuery
经过bind方法来监听input值发生改变
$("#inputs").bind('input propertychange',function(e){ console.log($(this).val()) })
用的bind,当遇到追加的新input标签时,则不能监听了,能够使用live替代
$('input').live('input propertychange', function() { //获取input 元素,并实时监听用户输入 //逻辑 })