Jens Marder: break-Ersatz für if-Abfragen?

Hallo alle Wissenden,

ich bin hier bisher leider noch nicht fündig geworden auf der Suche nach einem Ersatz für 'break' (das es bei if-Abfragen nicht gibt) in JS. Wenn die if-Abfrage mit false beantwortet wird, soll der gesamte JavaScipt-Block beendet werden.

mfg

  1. Hallo Jens

    Wenn die if-Abfrage mit false beantwortet wird, soll der gesamte JavaScipt-Block beendet werden.

    Was meinst Du mit JavaScript Block? Was genau soll nicht mehr ausgeführt werden von wo bis wo?

    Mich dünkt, dass du das Sturkturell etwas anders vorgehen müssen - Deiner Frage nach zu beurteilen.

    kaepten

    1. Hallo,

      Was meinst Du mit JavaScript Block? Was genau soll nicht mehr ausgeführt werden von wo bis wo?

      Es handelt sich insgesamt um eine Überprüfung, was in einem Formular eingegeben wird (HTML+PHP). Es wird abgefragt, ob ausschließlich Zahlen eingegeben wurden und überhaupt etwas eingegeben wurde. Falls dies false ist, so kommt ein alert und der Rest soll abgebrochen werden (die gesamte Funktion).

      mfg

      1. Jens

        Es handelt sich insgesamt um eine Überprüfung, was in einem Formular eingegeben wird (HTML+PHP). Es wird abgefragt, ob ausschließlich Zahlen eingegeben wurden und überhaupt etwas eingegeben wurde. Falls dies false ist, so kommt ein alert und der Rest soll abgebrochen werden (die gesamte Funktion).

        Ok, das habe ich angenommen. Kannst Du sagen in welchem Kontext aber der JS-Code steht? Es ist also eine Funktion die nicht weiter ausgeführt werden soll, aber wie schaut die aus? Poste doch mal den Code der davon betroffen ist.

        kaepten

        1. Hier dann ein Code-Ausschnitt (ist noch lange nicht fertig):

          <script language='javascript'>
          <!--
              function pruefen(){

          var koerpergroesse= document.eingabe.koerpergroesse.value;
                  var alter = document.eingabe.alter.value;
                  var status = true;
                  var Zahlen=/[1]+(,[0-9]{1,2})$/;

          if (((Zahlen.test(alter)) == false || alter.length == 0)
                  {
                    alert("Menge des Getränks ist falsch!");
                    status = false;
                  }
             if (((Zahlen.test(koerpergroesse)) == false || koerpergroesse.length == 0)
                  {
                    alert("Körpergroesse ist falsch!");
                    status = false;
                  }

          it status = true
               {
                 document.eingabe.method = "post";
                 document.eingabe.action = "<? echo $PHP_SELF ?>";
                 document.eingabe.submit();
          -->
          </script>

          Nun wird jedoch wahrscheinlich der Fall auftreten, dass ein User, der garnix eingibt, für jedes Feld extra eine Fehlermeldung bekommt (sind ca. 10 Felder).

          mfg


          1. 0-9 ↩︎

          1. Hi,

            setze einfach die schließenden "}" am ende - und ergänze dabei die fehlende klammer der letzten abfrage.

            freundliche Grüße
            Ingo

            1. Hallo nochmal,

              ja, ich habe zwei Klammern nicht geschlossen, das stimmt. Allerdings ändert das doch nichts, an meinem Problem oder sehe ich da jetzt etwas falsch??
              Er soll ja im Falle eines vorübergehenden status = false sofort den Rest abbrechen..

              mfg

              1. Hi,

                Er soll ja im Falle eines vorübergehenden status = false sofort den Rest abbrechen..

                ja und? macht er doch bzw. führt den nachfolgenden code nicht aus, wenn die bedingung nicht erfüllt ist:
                if (bedingung1) { // aktionen 1
                  if (bedingung2) { // aktionen 2
                    if (bedingung3) { // aktionen 3
                    }
                  }
                }

                freundliche Grüße
                Ingo

          2. Hallo Jens

            So - ich denke nun kann ich helfen:

            1. Ansatz
            Eine Funktion kannst Du vorzeitig mit return verlassen. Das wäre dann etwa hier:

            function pruefen(){

            var koerpergroesse= document.eingabe.koerpergroesse.value;
                    var alter = document.eingabe.alter.value;
                    var status = true;
                    var Zahlen=/[1]+(,[0-9]{1,2})$/;

            if (((Zahlen.test(alter)) == false || alter.length == 0)
                    {
                      alert("Menge des Getränks ist falsch!");

            return false;

            }

            ...

            Ein 2. Ansatz wäre ein Flag zu setzen und dieses dann in jede Bedingung einbinden, so dass wenn das Flag einmal false gesezt wurde die weiteren Bedingung nicht ausgewertet werden:

            // Ganz am Anfang ist alles Ok = true
            flag = true;

            if (flag && ((Zahlen.test(alter)) == false || alter.length == 0)

            {
                      alert("Menge des Getränks ist falsch!");

            // Es gab ein Fehler = false
            flag = false;

            }

            if (flag && ((Zahlen.test(koerpergroesse)) == false || koerpergroesse.length == 0)

            {
                      alert("Körpergroesse ist falsch!");

            flag = false;

            }

            Aber ich denke so wie Du das vorhast ist die 1. Variante die sinnvollere.
            Alles klar?
            HTH
            kaepten


            1. 0-9 ↩︎