我正在寫一個JavaScript的螺栓固定位,用於在提交表單時捕獲信息。我需要容納一個網頁上可能有多個表單的場景,其中沒有/一些/所有這些可能已經有onsubmit處理程序定義....我需要在調用螺栓代碼後觸發原始處理程序。多種形式的多重提交處理程序
我有一個測試用例設置2種形式,第一個沒有onsubmit處理程序,第二個簡單的警報箱。
我嘗試下面的代碼 - 而這似乎預先存在的處理程序從窗口2複製到Form1:
window.onload=pageinit;
function pageinit()
{
for (var x=0; x < document.forms.length; x++) {
var origSubmit=document.forms[x].onsubmit;
if (typeof origSubmit != 'function') {
document.forms[x].onsubmit=dosubmit;
} else {
document.forms[x].onsubmit = function (event) {
dosubmit(event);
return origSubmit(event);
}
}
}
}
function dosubmit(ev)
{
alert('bolt-on invoked from ' + ev.target.name);
}
任何想法?
TIA
謝謝菲利克斯,是的 - 這當然有效 - 我需要有一個小時思考爲什麼現在 - 所以我會去讀這個鏈接。不幸的是,在MSIE6中,事件對象似乎在某處陷入歧途 - 但我遇到了與attachEvent相同的問題。 – symcbean 2010-12-13 15:38:07
@symcbean:IE不直接傳遞事件對象。你通過'window.event'得到它。閱讀關於這裏的活動:http://www.quirksmode.org/js/events_properties.html,這也可能是有趣的:http://www.quirksmode.org/js/events_tradmod.html – 2010-12-13 23:19:05