Submit Email immer nach einmalig, erfolgreicher Mail-Erstellung auch im Fehlerfall (Javascript)
Verfasst: 13.02.2012, 15:12
Hallo,
ich habe ein Problem beim Versand eines Formulars per Email.
U.a. werden in dem Formular Checkbox Felder geprüft, falls angeflaggt müssen 3 weitere Felder gefüllt werden.
Beim Klick auf den Submitbutton ( Typ: BUTTON, kein EMAIL BUTTON ) wird die Prüfung im ENTER Event des Javascript Codes durchgeführt und im Fehlerfall wird eine Messagebox ausgegeben.
Hier ein Beispiel einer Feldprüfung mit Fehlerausgabe:
if (( strBT == null || strBT == "" ) || ( strDescr == null || strDescr == "" ))
{
xfa.host.messageBox("Please fill out the required data" );
bolDataflag = true;
exit;
}
Soweit passt das alles gut.
Bei einem Szenario geht es aber nicht. Wenn im Formular alles korrekt ausgefüllt ist, dann wird die Email erzeugt. Nun breche ich aber ab weil ich was vergessen habe. Ich ergänze Daten, die Feldprüfungen werden durchlaufen, Fehler entdeckt und per MessageBox angezeigt. Am Ende aber wird DENNOCH die Email wieder erzeugt. Selbst wenn ich das Interactive Form auf Festplatte speichere und wieder neu lade, "merkt" sich das Interactive Form die ehemals erfolgreiche Erzeugung und erzeugt wieder eine Email auch wenn der Javascriptcode nicht mehr an die Stelle im Code ( this.resolveNode("#event").submit.target
) kommt:
Hier der Code der die Erzeugung der Email steuert oder verhindert:
if ( bolDataflag != true )
{
this.resolveNode("#event").submit.target = "mailto:"+$record.IF_SUBMIT_EMAIL.value+"?subject="+$record.IF_SUBMIT_SUBJECT.value+"&Body=" + "Hier steht der Bodytext."
}
else
{
xfa.host.messageBox("Error during email processing !");
xfa.event.cancelAction = 1;
}
Welcher Mechanismus ist dafür verantwortlich, dass ,wenn eine Email einmal erzeugt werden konnte, diese Email immer erzeugt wird, auch wenn sie durch das Fehlerhandling laut Code gar nicht erzeugt werden dürfte ?
Hoffe jemand hat einen guten Tipp.
Danke !
ich habe ein Problem beim Versand eines Formulars per Email.
U.a. werden in dem Formular Checkbox Felder geprüft, falls angeflaggt müssen 3 weitere Felder gefüllt werden.
Beim Klick auf den Submitbutton ( Typ: BUTTON, kein EMAIL BUTTON ) wird die Prüfung im ENTER Event des Javascript Codes durchgeführt und im Fehlerfall wird eine Messagebox ausgegeben.
Hier ein Beispiel einer Feldprüfung mit Fehlerausgabe:
if (( strBT == null || strBT == "" ) || ( strDescr == null || strDescr == "" ))
{
xfa.host.messageBox("Please fill out the required data" );
bolDataflag = true;
exit;
}
Soweit passt das alles gut.
Bei einem Szenario geht es aber nicht. Wenn im Formular alles korrekt ausgefüllt ist, dann wird die Email erzeugt. Nun breche ich aber ab weil ich was vergessen habe. Ich ergänze Daten, die Feldprüfungen werden durchlaufen, Fehler entdeckt und per MessageBox angezeigt. Am Ende aber wird DENNOCH die Email wieder erzeugt. Selbst wenn ich das Interactive Form auf Festplatte speichere und wieder neu lade, "merkt" sich das Interactive Form die ehemals erfolgreiche Erzeugung und erzeugt wieder eine Email auch wenn der Javascriptcode nicht mehr an die Stelle im Code ( this.resolveNode("#event").submit.target
) kommt:
Hier der Code der die Erzeugung der Email steuert oder verhindert:
if ( bolDataflag != true )
{
this.resolveNode("#event").submit.target = "mailto:"+$record.IF_SUBMIT_EMAIL.value+"?subject="+$record.IF_SUBMIT_SUBJECT.value+"&Body=" + "Hier steht der Bodytext."
}
else
{
xfa.host.messageBox("Error during email processing !");
xfa.event.cancelAction = 1;
}
Welcher Mechanismus ist dafür verantwortlich, dass ,wenn eine Email einmal erzeugt werden konnte, diese Email immer erzeugt wird, auch wenn sie durch das Fehlerhandling laut Code gar nicht erzeugt werden dürfte ?
Hoffe jemand hat einen guten Tipp.
Danke !