跟踪input值改变的兼容处理

dh20156 2010-01-07 10:07:27
加精
兼容处理input控件值改变事件

兼容处理 @ IE,FireFox,Opera,Netscape

手动输入事件捕获:手动输入内容时会触发

复制粘贴事件捕获:复制粘贴内容时会触发

程序设置事件捕获:javascript程序动态设置内容时会触发

拖入事件捕获:选定内容拖入时会触发


一些遗憾:

WEBKIT内核浏览器(Safari,Chrome等)尚未兼容第3点:程序设置事件捕获;

第4点,拖入事件捕获用的是onmousemove处理的,如果绑定函数中有alert,将会灰常杯具 - -!

欢迎讨论。


兼容代码

var easychange = function(foochange){
if(!foochange||foochange.constructor!=Function){return;}
try{this.watch("value",function(id,oldval,newval){foochange(newval);return newval;});}catch(e){}
this.setAttribute('oninput','('+foochange.toString()+')(this.value)');
this.onpropertychange = function(){foochange(this.value);};
this.onmousemove = function(){foochange(this.value);};
this.onkeyup = function(){foochange(this.value);};
};


调用示例

var dx = document.getElementById('x');
easychange.call(dx,function(newvalue){document.title = newvalue;});
...全文
2030 172 打赏 收藏 转发到动态 举报
写回复
用AI写文章
172 条回复
切换为时间正序
请发表友善的回复…
发表回复
rmn190 2010-09-17
  • 打赏
  • 举报
回复
遇到同样的问题了,详见http://topic.csdn.net/u/20100917/15/d9504458-d6d9-4595-bc92-2e71b7b94403.html

RongDu_Lao 2010-05-11
  • 打赏
  • 举报
回复
看不懂
jamix 2010-04-01
  • 打赏
  • 举报
回复
我是来JF的~~~
焱悠 2010-04-01
  • 打赏
  • 举报
回复
不错 支持下
yexianshow 2010-03-05
  • 打赏
  • 举报
回复
不错,值得学习一下……
mark
千游 2010-01-14
  • 打赏
  • 举报
回复
学习!
  • 打赏
  • 举报
回复
学习了
dh20156 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 167 楼 meizz 的回复:]
用一个 setInterval ,100毫秒跟踪一次值的变化,这样的处理更简单!
[/Quote]

恩,是的,不过要挂一个timer,心理总感觉不爽 ^_^
xxo_bird 2010-01-13
  • 打赏
  • 举报
回复
学习中~~~ LZ有时间讲讲可以么
sunbj1989 2010-01-13
  • 打赏
  • 举报
回复
学习...
meizz 2010-01-12
  • 打赏
  • 举报
回复
用一个 setInterval ,100毫秒跟踪一次值的变化,这样的处理更简单!
dh20156 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 162 楼 dudp1985 的回复:]
第4点,拖入事件捕获用的是onmousemove处理的,如果绑定函数中有alert,将会灰常杯具 - -!
onmouseup不是更好??
[/Quote]

FF不能触发,你可以测试一下,改用onmouseover。
段传涛 2010-01-11
  • 打赏
  • 举报
回复
顶。
dudp1985 2010-01-11
  • 打赏
  • 举报
回复
第4点,拖入事件捕获用的是onmousemove处理的,如果绑定函数中有alert,将会灰常杯具 - -!


onmouseup不是更好??
前云 2010-01-11
  • 打赏
  • 举报
回复
zhyj9996 2010-01-10
  • 打赏
  • 举报
回复
支持
irila 2010-01-10
  • 打赏
  • 举报
回复
学习
wujinjian2008n 2010-01-10
  • 打赏
  • 举报
回复
地址打不开啊
wujinjian2008n 2010-01-10
  • 打赏
  • 举报
回复
不懂 学习
tgn2roselover 2010-01-10
  • 打赏
  • 举报
回复
很好,很强大。
加载更多回复(152)

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧