专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > JavaScript

跟踪input值改变的兼容处理,该如何解决

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
跟踪input值改变的兼容处理
兼容处理input控件值改变事件

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

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

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

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

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


一些遗憾:

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

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

欢迎讨论。


兼容代码
JScript code
 
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);};
};


调用示例
JScript code

var dx = document.getElementById('x');
easychange.call(dx,function(newvalue){document.title = newvalue;});



------解决方案--------------------
jf
------解决方案--------------------
什么意思?
------解决方案--------------------
UP
------解决方案--------------------
支持
------解决方案--------------------
呵呵 up
------解决方案--------------------
jf
------解决方案--------------------
楼主很有厉害,我以前有这想法,可没那勇气,嘿嘿!
------解决方案--------------------
不会但支持一下啊!
------解决方案--------------------
顶 支持
------解决方案--------------------
支持
------解决方案--------------------
up
------解决方案--------------------


学习···
------解决方案--------------------
我愣是没看明白,
try{this.watch("value",function(id,oldval,newval){foochange(newval);return newval;});}catch(e){}

这个this.watch是干嘛的
------解决方案--------------------
UP,学习~~~~~~~~~~~
------解决方案--------------------
学习···
------解决方案--------------------
貌似这样调用很危险

JScript code

var dx = document.getElementById('x');

easychange.call(dx,(function(){return function(newvalue){dx.value="xxxx"+dx.value}})(dx));

------解决方案--------------------
支持,谢谢~~
------解决方案--------------------
或者

easychange.call(o,(function(){return function(newvalue){o.value="name:"+newvalue}})(o));
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: