Fabian Steiner: Zwei Bedingungen (if) überprüfen

Hallo!

Ich will mittels JavaScript zwei Bedingungen überprüfen.

Ich habe ein Formular, von dem Teile nur aktiv sind, wenn man auf eine Checkbox gejklickt hat. Nun will ich ein Skript schreiben, das auch diese Felder überprüft. Ich habe es mit diesem Skript versucht, doch leider funktioniert es nicht, d.h. der Brwoser setzt es nicht um:

if (document.Formular.lief_rech_dif.checked == true) && if(document.Formular.Anrede_Rechnung.value == "")
    {
     alert("Bitte blblablabla eingeben");
     return false;
    }
Erklärung:
Ich habe versucht mit dem && die beiden Bedingungen zu verknüpfen: Wenn a UND b dann...
lief_rech_dif ist die Checkbox, die wenn aktiviert ist das Feld Anrede_Rechnung erscheinen lässt. Der Code hierfür lautet:

if (document.Formular.lief_rech_dif.checked == true){
document.Formular.Anrede_Rechnung.style.visibility = "visible";
}

Grüße,

Fabian

  1. Hallo!

    if ((document.Formular.lief_rech_dif.checked == true) && (document.Formular.Anrede_Rechnung.value == ""))
       {
         alert("Bitte blblablabla eingeben");
        return false;
       }

    Gruss Daniel

  2. Hi Fabian

    if (document.Formular.lief_rech_dif.checked == true) && if(document.Formular.Anrede_Rechnung.value == "")
        {
         alert("Bitte blblablabla eingeben");
         return false;
        }
    Erklärung:

    Das was in den runden Klammern steht ist ein bool'scher Ausdruck, der True oder False zurückliefert. Mit den bool'schen Operatoren !, && oder auch || kannst du mehrere solche Ausdrücke zu einem Verknüpfen. Eine Bedingung, also ein If-Block, kann nur immer einen Ausdruck auswerten, dieser kann sich jedoch aus mehreren einfachen Ausdrücken zusammensetzen. Der Ausdruck wird nach dem 'if' in runden Klammern notiert. Desshalb muss deine Bedingung folgendermassen aussehen:

    if((document.Formular.lief_rech_div.checked == true)
       && (document.Formular.Anrede_Rechnung.value == ""))
    {
      // Dein Code
    }

    Bei dir war also die Klammerung falsch (die einzelnen Audrücke müssen nicht unbedingt geklammert werden, dies erhöht jedoch die Lesbarkeit für Mensch und Interpreter) und das zweite if gehört da nicht hin.

    Ich hoffe, das hilft dir weiter.

    FG

    Tom2

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}
  3. if (document.Formular.lief_rech_dif.checked == true)

    Es macht wenig Sinn, einen Booleschen Ausdruck b nochmal gegen true zu testen: b == true ist wahr genau dann, wenn b wahr ist.

    Du kannst also schreiben:
       if (document.Formular.lief_rech_dif.checked)

    also dann
       if ((document.Formular.lief_rech_dif.checked) && ( /* andere Bedingung */ ))
    Gunnar

    --
    Good results come from experience; and experience comes from bad results.