Stephan: Was bewirkt "return"?

Der folgende Code bildet zwei Eingabefelder und zwei Buttons. Beim clicken auf den Reset-Button wird der Anwender gefragt, ob er den Inhalt wirklich löschen will (Beispiel aus Selfhtml).
Warum wird das Feld direkt gelöscht, wenn "return chk" fehlt?
Welcher Befehl im Script bewirkt hier eigentlich das Löschen des Formulars?
  
<html><head><title>Test</title>
  <script language="JavaScript">
  function ResetCheck()
  {
   chk = window.confirm("Wollen Sie alle Eingaben loeschen?");
   return chk;
  }
  </script>
  </head><body>
  <form name="Test" onReset="return ResetCheck()">
  Name: <input size=30><br>
  Idee: <input size=30><br>
  <input type=reset><input type=submit>
  </form>
  </body></html>

Danke für eure Hilfe, Stephan

  1. Hallo Stephan,

    <html><head><title>Test</title>
      <script language="JavaScript">
      function ResetCheck()
      {
       chk = window.confirm("Wollen Sie alle Eingaben loeschen?");
       return chk;

    return gibt den Wahrheitswert (true oder false) zurück, der in der Variable chk gespeichert ist;
    theoretisch könnte man auch.
      return true;
    schreiben. Macht natürlich hier wenig Sinn :-)
    chk bekommt ja den Wert von window.confirm. Und window.confirm liefert beim Klick des Anwenders auf "OK" true zurück, sonst false

    }
      </script>
      </head><body>
      <form name="Test" onReset="return ResetCheck()">

    Ja das return hier ist etwas verwirrend. Aber so ist halt nunmal Javascript. Im Prinzip (in groben Worten formuliert) wird da der von der Funktion zurückgegebene Wert (der ursprünglich in chk stand) an onReset übergeben. Und dieser resetet halt nur, wenn er den Wert true bekommt. Deshalb auch das Schlüsselwort return davor. Damit wird wohl klargemacht das "ResetCheck()" der Wert den diese Funktion zurückgibt an onReset übergeben wird.

    Name: <input size=30>

    Idee: <input size=30>

    <input type=reset><input type=submit>
      </form>
      </body></html>

    Danke für eure Hilfe, Stephan

    Bitteschön
       Michael