js给文本框动态绑定onblur方法,失焦的时候触发

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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.indexO

f("}"));

16. //防止原始onblur方法被覆盖

17. var addFun = typeof oldFun!="undefined" ? oldFun:newFun;

18. //当第二次触发bindOnblurEvent()时,当前onblur方法为

addOnblurFun()时,不保存(原始onblur为空)

19. if(!(addOnblurFun.toString().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.value.replace(/(^\s*)|(\s*$)/g, "");

34.

35. //调用原始的onblur方法

36. //根据当前元素在form表单的位置,从funArr获取原始的onblur方法并调用

37. var fun = tmpMap[];

38. if(typeof fun != "undefined"){

39. //alert("fun = "+fun);

40. eval(fun);

41. }

42.}

相关文档
最新文档