1. //以下以失焦时,去掉文本框对应值的前后空格为例;此外存在局部刷新元素也适应,局部刷新后再调用此方法即可。
2. var funMap = {};//记录页面变动之前的所有元素原始onblur方法
3. var tmpMap = null;//以元素name为key存储onblur方法,存在当前页面原始onblur方法;
4. function bindOnblurEvent(){//绑定对象类型input(type=text) texttarea
5. var elements = document.getElementsByTagName('form')[0];
6. tmpMap = {};
7. if(elements != null){
8. for ( var i = 0; i < elements.length; i++) {
9. if(elements[i].type == "text" || elements[i].type == "textarea"){
10.
11. //若有原始onblur,则存入funArr,并放入temMap;
12. if(elements[i].onblur != null){
13. var tmp = (elements[i].onblur+"").replace(/(\n)+|(\r\n)+/g, "");
14. var oldFun = funMap[elements[i].name];//通过name获取原始的onblur方法
15. var newFun = tmp.substring(tmp.indexOf("{")+1,tmp.indexOf("}"));
16. //防止原始onblur方法被覆盖
17. var addFun = typeof oldFun!="undefined" ? oldFun:newFun;
18. //当第二次触发bindOnblurEvent()时,当前onblur方法为addOnblurFun()时,不保存(原始onblur为空)
19. if(!(String().replace(/(\n)+|(\r\n)+/g, "").indexOf(addFun) > 0)){
20. tmpMap[elements[i].name] = addFun;
21. }
22. }
23. //给onblur绑定新的方法
24. elements[i].onblur = addOnblurFun;
25. }
26. }
27. funMap = tmpMap;
28. }
29. }
30.
31. function addOnblurFun(){
32. //input texttarea 所输入的字符串去掉前后空格
33. this.value = this.place(/(^\s*)|(\s*$)/g, "");
34.
35. //调用原始的onblur方法
36. //根据当前元素在form表单的位置,从funArr获取原始的onblur方法并调用
37. var funonblur和blur的区别 = tmpMap[this.name];
38. if(typeof fun != "undefined"){
39. //alert("fun = "+fun);
40. eval(fun);
41. }
42. }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论