フォームが送信されたときに情報をキャプチャすることを目的としたJavaScriptのボルトオンビットを書いています。Webページに複数のフォームがあり、そのいずれも/一部/すべてにonsubmitハンドラーがすでに定義されている可能性があるシナリオに対応する必要があります。また、ボルトオンコードを呼び出した後、元のハンドラーを起動する必要があります。
2つのフォームでテストケースを設定しました。1つ目はonsubmitハンドラーがなく、2つ目は単純なアラートボックスです。
以下のコードを試しましたが、既存のハンドラーをform2から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