如上 ,获取到数据,给文本框赋值 如 $('#txt').val('123') ,此时如何捕获文本框内容改变?
onchange触发事件必须满足两个条件:
a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)
b)当前对象失去焦点(onblur);
onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的;
oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
所以兼容IE和非IE浏览器的事件用onpropertychange和oninput
给它绑定改变的事件(onPropertyChange)
ie9+ 火狐等 不支持
@蓝风»: 哦,反正是动态绑定一个改变的事件,我也没去看过兼容性
很简单咯,在js写个全局变量缓存value。每一次当文本框blur时把值拿出来做对比
要是不是手动输入 每次都是动态赋值 blur永远不会触发 应该怎么解决
你想怎么捕获??
//jquery1.4使用.live(), 1.7以后开始使用.on()。
$('#txt').on('change', function () { alert("被动态改变了"); });
$('#txt').live('change', function () { alert("被动态改变了"); });
$('#txt').bind('change', function () { alert("被动态改变了"); });
试试动态绑定事件。
$('#txt').change(function () { alert("-|-"); });