我正在写一个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