首页新闻找找看学习计划

jquery 文本框内容(由代码改变)改变 捕获

0
悬赏园豆:10 [已解决问题] 解决于 2015-10-31 09:47

如上 ,获取到数据,给文本框赋值 如 $('#txt').val('123') ,此时如何捕获文本框内容改变?

蓝风»的主页 蓝风» | 初学一级 | 园豆:49
提问于:2015-10-23 17:48
< >
分享
最佳答案
0

onchange触发事件必须满足两个条件:

a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)

b)当前对象失去焦点(onblur);

onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的;

oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。

所以兼容IE和非IE浏览器的事件用onpropertychange和oninput

收获园豆:10
朋友在线 | 菜鸟二级 |园豆:243 | 2015-10-28 10:05
其他回答(5)
0

给它绑定改变的事件(onPropertyChange)

稳稳的河 | 园豆:4183 (老鸟四级) | 2015-10-23 17:58

ie9+ 火狐等 不支持

支持(0) 反对(0) 蓝风» | 园豆:49 (初学一级) | 2015-10-23 18:14

@蓝风»: 哦,反正是动态绑定一个改变的事件,我也没去看过兼容性

支持(0) 反对(0) 稳稳的河 | 园豆:4183 (老鸟四级) | 2015-10-26 09:49
0

很简单咯,在js写个全局变量缓存value。每一次当文本框blur时把值拿出来做对比

powerixao | 园豆:401 (菜鸟二级) | 2015-10-23 19:06
0

你想怎么捕获??

如此低调的男人 | 园豆:840 (小虾三级) | 2015-10-23 19:40
0

//jquery1.4使用.live(), 1.7以后开始使用.on()。

$('#txt').on('change', function () { alert("被动态改变了"); });

$('#txt').live('change', function () { alert("被动态改变了"); });

$('#txt').bind('change', function () { alert("被动态改变了"); });

试试动态绑定事件。

LI.TS | 园豆:222 (菜鸟二级) | 2015-10-25 00:12
0

$('#txt').change(function () { alert("-|-"); });

反骨仔 | 园豆:444 (菜鸟二级) | 2015-10-26 18:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册