2010-07-29 72 views
0

我想为应用程序中的所有文本框定义自己的onblur事件,以便我可以去除所有高ascii值,因此我编写了一个脚本,该脚本在每页加载的asp.net母版页上运行,覆盖所有文本框/区域onblur事件,并存储旧事件的副本。为什么这个javascript会抛出未定义的错误?

新事件然后称为旧事件,以便它不会打破表单中的现有事件。

它工作正常,直到一个页面定义了一个onblur,如:onblur =“func(this)” 当原始事件触发时,'this'点似乎不再指向发件人控件。

Pastebin link with 2 simple examples

所以会有人能指出我朝着一个更好的方式来做到这一点?

谢谢!

回答

1

要在控制this的值时动态调用函数,请使用func.apply而不是标准调用。例如,而不是

myStoredFunc(arg1, arg2)

使用:

myStoredFunc.apply(this, arguments);

这样,这个变量的值将被正确地传递给被调用的函数,这要归功于apply的第一个参数。第二个参数允许你指定参数值(在这里我将所有当前函数的参数传递给被调用的函数)。

+0

看起来它会工作,非常感谢。 – asawyer 2010-07-29 20:58:59

相关问题