Bernhard Peissl: 2 x OnSubmit, geht das?

Beitrag lesen

Hi!

das Problem ist wahrscheinlich, dass es in der If-Bedinung return isValid(); heissen sollte.

Nein, wenn er schreibt if(return isValid()) beendet ér die Funktion und gibt den Rückgabewert der Funktion isValid() an das aufrufende Programm zurück! ;-)

Ich fürchte eher, dass Rocky in der Funktion isValid() keinen Rückgabewert hat (return true/false). Denn wenn's das nicht gibt, funktioniert natürlich auch keine if-Abfrage :-(

Es sollte so sein:

// if (isValid()) return formCheck();

isValid() wird aufgerufen, abgearbeitet, und sollte daraufhin entweder true (ok) oder false (fehler) an die aufrufende Funktion (submitForm()) zurückgeben.

Wenn von isValid() true zurückgegeben wird ist auch die if-Bedingung true, d.h. der if-Anweisungsblock wird ausgeführt: Zuerst wird formCheck() aufgerufen und gibt wiederum true oder false zurück, und das wird dann direkt (return formCheck()) ans Hauptprogramm zurückgegeben, was heissen soll, dass der Rückgabewert von formCheck() 1:1 an den onSubmit-Scriptaufruf zurückgegeben wird!

Wenn von isValid() false zurückgegeben wird ist if(false) 'false' daher wird der if-Anweisungsblock gar nicht erst durchlaufen, sondern der else-Block, und der gibt 'false' an den Scriptaufruf zurück!

Eigentlich ganz logisch, oder ;-)

liebe Grüsse
Bernhard