Kiska Kogtistaya: eine große Funktion oder mehrere kleine?

Hallo (heut' zum zweiten mal, aber zum anderen Thema)

Verständnisfrage: ich habe mir eine Funktion zum Überprüfen der Formulareingaben zusammengebastelt. Wenn Pflichtfelder nicht, oder nicht richtig, ausgefüllt wurden und submit() ausgeführt wird, werden die Überschriften der Felder rot.

Nun, sind es 7 if- Anweisungen, die sicht nicht in einer Schleife zusammenfassen lassen.

Frage: damit die Funktion den Wert true zurückliefert, müssen alle if-Anweisungen gleichzeitig NICHT erfüllt sein. Wie kann ich das am besten anstellen, ohne die Funktion gleich in 7 Teilen zu zerlegen und dann den Wert jeder einzelnen zu überprüfen?

Danke. Kiska.

  1. Hallo Kiska

    Ich würde es so versuchen:

    return !(bedingung1) && !(bedingung2) && !(bedingung3)

    oder so:

    return !(bedingung1 || bedingung2 || bedingung3)

    Grüße

    Daniel

    1. Hallo Daniel

      return !(bedingung1) && !(bedingung2) && !(bedingung3)

      return !(bedingung1 || bedingung2 || bedingung3)

      die Bedingungen sind relativ umfangreich, so dass ich (oder die nachfolgende Generation) später nicht mehr durchschaut.

      Die Lösung ist:

      eine boolische Variable mit dem Wert true zu definieren: var ok = true, und diese dann in jeder if-Anweisung auf false zu setzen. Wurde keine der Anweisungen ausgeführt, also überall Bedingung nicht erfüllt, so hat die Variable den Wert true und es kann losgehen, sobald sich aber einer der if-Anweisungen erfüllt, wird die Variable auf false gesetzt und fertig ist die Suppe.

      P.S. Das Angebot mit dem Brett (s. oben) steht ;)

      1. Hallo Kiska

        Die Variable kannst Du Dir spaaren:

        if(bedingung1) return false;
        if(bedingung2) return false;
        if(bedingung3) return false;
        return true;

        Grüße

        Daniel

        1. Ahoi Daniel,

          Die Variable kannst Du Dir spaaren:

          if(bedingung1) return false;
          if(bedingung2) return false;
          if(bedingung3) return false;
          return true;

          kann ich nicht, da alle Bedingungen gleichzeitig überprüft werden müssen. So wird meine Funktion nach jeder Bedingung gestoppt, wenn return eingesetzt wird. Sie muss aber weiterlaufen und sie läuft...!!! So eine sch....!!!!!

          P. S. Danke dir. Man füllt sich nicht so alleine, wenn man weiß, dass es irgendwo dadraußen sich jemand Gedanken macht. Kiss-Kiska.

  2. Sorry für die Frage.

    P.S. Möchte jemand sich meinen "Brett vorm Kopf" leihen?

    1. isch nehme nur Eiche oder Teak ;-))