我想为应用程序中的所有文本框定义自己的onblur事件,以便我可以删除所有高ascii值,因此我编写了一个在每页加载运行的asp.net主页上运行的脚本,覆盖所有文本框/区域onblur事件,并存储旧事件的副本。
然后新事件调用旧事件,因此不会破坏表单中的现有事件。
它工作正常,直到页面定义了onblur,如:onblur =“func(this)” 当原始事件触发'this'点时似乎不再指向发送者控制。
Pastebin link with 2 simple examples
那么有人能够指出我更好的方法来实现这个目标吗?
谢谢!
答案 0 :(得分:1)
要在控制this
的值的同时动态调用函数,请使用func.apply而不是标准调用。例如,而不是
myStoredFunc(arg1, arg2)
使用:
myStoredFunc.apply(this, arguments);
这样,由于apply
的第一个参数,this变量的值将被正确传递给被调用的函数。第二个参数允许您指定参数值(这里我将所有当前函数的参数传递给被调用函数)。