dedlfix: Bei Funktionsaufruf Variable auf Wert setzen

Beitrag lesen

Hi!

Ich rufe in einem Formular mit onsubmit eine Funktion auf, die bei bestimmten, nicht erfüllten Bedingungen eine Variable mit "false" zurück gibt.

Nein, das macht sie nicht. Funktionen geben keine Variablen zurück sondern Werte. In deinem Fall gibt sie gar nichts zurück. Sie setzt aber eine globale Variable auf den Wert false, oder sie rührt den vorhandenen Wert nicht an. Sowas ist schlechtes Design für eine Validierungsfunktion. Sie sollte besser, statt eine globale Variable zu verändern, einen boolschen Wert mit dem Testergebnis liefern.

Außerhalb der Funktion habe ich diese Variable auf "true" gesetzt. Sprich, sind von vornherein alle Bedingungen erfüllt, wird auch true zurück gegeben.

Auch falsch formuliert. Wie gesagt wird nichts zurückgegeben. Und wenn alle Bedingungen erfüllt sind, ist nicht true der Zustand der Variable, sondern es ändert sich am bisherigen Zustand nichts.

Wie stelle ich es nun aber an, dass bei jedem absenden des Formulars die Variable erst einmal auf "true" gesetzt wird?

Wenn ich dich richtig verstehe, ist dein eigentliches Ziel, die Formularversendung abhängig von der Validitätsprüfung zu machen und nicht von irgendeinem Zustand einer Variable. Diese sollte lediglich als Hilfsmittel dienen. Du kannst, wenn du die Validierfunktion auf die direkte Rückgabe des Prüfergebnisses umstellst, direkt in Abhängigkeit des Funktionsergebnisses den weiteren Ablauf steuern. Und der läuft dann immer wieder so ab, unabhängig von irgendeinem früheren Durchlauf.

Lo!