Ich schreibe ein Bolt-on-Bit von Javascript, das Informationen erfassen soll, wenn ein Formular übermittelt wird. Ich muss das Szenario unterbringen, wo es mehrere Formulare auf einer Webseite gibt, keine/einige/alle, die möglicherweise bereits On-Submit-Handler definiert haben .... und ich muss den ursprünglichen Handler auslösen, nachdem ich den Bolt-on-Code aufgerufen habe.Mehrfachanwender Handler für mehrere Formulare
Ich habe einen Testfall Setup mit 2 Formen, die erste hat keine onsubmit Handler, die zweite eine einfache Alarmbox.
habe ich versucht, den Code unten - aber das schien den vorbestehenden Handler von form2 in form1 zu kopieren:
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);
}
Irgendwelche Ideen?
TIA
Danke Felix, ja - das funktioniert sicherlich - ich brauche ein bisschen darüber nachzudenken, warum jetzt - also werde ich diesen Link lesen. Leider scheint das Ereignisobjekt in MSIE6 irgendwo in die Irre zu gehen - aber ich bekomme das gleiche Problem mit attachEvent. – symcbean
@symcbean: IE übergibt das Ereignisobjekt nicht direkt. Sie erhalten es über 'window.event'. Lies über Events hier: http://www.quirksmode.org/js/events_properties.html und das könnte auch interessant sein: http://www.quirksmode.org/js/events_tradmod.html –