2010-07-29 138 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

相關問題