radioman: Zwei Forumlar Felder Überprüfen

Hallo zusammen!

Ichhabe ein ziemlich dummes Problem. Es ist eigentlich ganz einfach aber es klappt nicht. Ich will, dass wenn ein radiobutton gecklicht ist UND ein Textfeld mit INhalt gefüllt worden ist, das Formular geschickt wird.
Ich bekomme aber diese UND Verknüpfung nicht hin.

So sieht der Quelltext aus:

function Weiter()
{

if (document.Frage.Rubrik[0].checked == true){
    alert("Ob das so richtig war? Schauen Sie lieber nochmal nach!");
   return false;

}
if (document.Frage.Rubrik[1].checked == true){
   alert("Ob das so richtig war? Schauen Sie lieber nochmal nach!");
   return false;
 }

Darum GEHT ES MIR -->

if (document.Frage.Rubrik[2].checked == true
&&  document.Frage.Vorname != ""){
   return true;
Aber es geht nicht!!! SKANDAL!

}
if (document.Frage.Rubrik[0].checked == false
&&  document.Frage.Rubrik[1].checked == false
&&  document.Frage.Rubrik[2].checked == false){

alert("Sie haben keine Rubrik ausgewählt! Bitte eine Rubrik aussuchen!");
   return false;
 }

}

Bitte dringend um Hilfe!

Danke

  1. Hallo Radioman,

    if (document.Frage.Rubrik[2].checked == true
    &&  document.Frage.Vorname != ""){

    Hier willst Du doch sicherlich den Wert des Formularfeldes (document.Frage.Vorname.value) abfragen, oder?

    Grüße
    Andreas

    1. Ja genau! Das Formular soll nur dann abgeschickt werden wenn
      der radio gecheckt ist und das Textfeld nicht leer ist.

      1. Hallo Radioman,

        Ja genau! Das Formular soll nur dann abgeschickt werden wenn
        der radio gecheckt ist und das Textfeld nicht leer ist.

        Du hast mich falsch verstanden. Das war keine Bitte um nähere Erläuterung, sondern der Hinweis, daß ein .value fehlt.

        Grüße
        Andreas

        1. Ja das stimmt. Habe jetzt value angefügt... Das komplette Skript dieht jetzt so aus:

          <script language="JavaScript">
          <!--
          function Weiter()
          {

          if (document.Frage.Rubrik[0].checked == false
          &&  document.Frage.Rubrik[1].checked == false
          &&  document.Frage.Rubrik[2].checked == false){

          alert("Sie haben keine Rubrik ausgewählt! Bitte eine Rubrik aussuchen!");
             return false;
          }

          if (document.Frage.Rubrik[0].checked == true){
              alert("Ob das so richtig war? Schauen Sie lieber nochmal nach!");
             return false;

          }
          if (document.Frage.Rubrik[1].checked == true){
             alert("Ob das so richtig war? Schauen Sie lieber nochmal nach!");
             return false;
           }

          if (document.Frage.Rubrik[2].checked == true
          &&  document.Frage.Vorname.value != ""
          &&  document.Frage.Nachname.value != ""
          &&  document.Frage.email.value != ""){

          alert("Es wurden nicht alle Benutzerdaten eingegeben!");
             return false;

          }

          }
          //-->
          </script>

          Trotzdem wird das Dokument abgeschickt, obwohl nirgends return true; steht. Komisch, oder?

          Schaut es euch doch mal einfach an unter:

          http://www.bartweb.de/js/formular.html

          1. Hallo Radioman,

            if (document.Frage.Rubrik[2].checked == true
            &&  document.Frage.Vorname.value != ""
            &&  document.Frage.Nachname.value != ""
            &&  document.Frage.email.value != ""){
               alert("Es wurden nicht alle Benutzerdaten eingegeben!");
               return false;
            }

            Das trifft ja auch nur zu, wenn _keins_ der Felder Vorname, Nachname oder email leer ist.

            Grüße
            Andreas

            1. Hallo Radioman,

              if (document.Frage.Rubrik[2].checked == true
              &&  document.Frage.Vorname.value != ""
              &&  document.Frage.Nachname.value != ""
              &&  document.Frage.email.value != ""){
                 alert("Es wurden nicht alle Benutzerdaten eingegeben!");
                 return false;
              }

              Das trifft ja auch nur zu, wenn _keins_ der Felder Vorname, Nachname oder email leer ist.

              Grüße
              Andreas

              In diesem Fall, der oben steht, ist das Formular doch korrekt ausgefüllt ... und dann kann es doch auch abgeschickt werden, oder ???

              also eher ( nach den anderen Abfragen )

              if(...){
               return true;
              } else{
               alert("Es wurden nicht alle Benutzerdaten eingegeben!");
               return false;
              }

              Gruß
                 Achim

              1. Hallo Achim,

                In diesem Fall, der oben steht, ist das Formular doch korrekt ausgefüllt ... und dann kann es doch auch abgeschickt werden, oder ???

                Sag ich ja.

                also eher ( nach den anderen Abfragen )

                if(...){
                return true;
                } else{
                alert("Es wurden nicht alle Benutzerdaten eingegeben!");
                return false;
                }

                Genau so gehts.

                Grüße
                Andreas

  2. Ein Fehler in der Reihenfolge.....
    Wenn einer der obigen bedingeungen erfüllt sind, steigst Du mit return false aus.
    Das ist jedoch immer der Fall auch wenn beide Felder gefüllt sind.
    D.H. Dein Script kommt niemals bis nach unten und wenn dann ist die untere Anforderung nicht erfüllt.
    Du musst die untere if Bedingung nach oben bringen.

    Denn wenn beide Felder gefüllt sind willst Du es ja versenden.
    Und wenn nicht wird weiter unten geprüft, ob es passt.
    Ich hoffe das hat geholfen.

    Gruss Matze

    Hallo zusammen!

    Ichhabe ein ziemlich dummes Problem. Es ist eigentlich ganz einfach aber es klappt nicht. Ich will, dass wenn ein radiobutton gecklicht ist UND ein Textfeld mit INhalt gefüllt worden ist, das Formular geschickt wird.
    Ich bekomme aber diese UND Verknüpfung nicht hin.

    So sieht der Quelltext aus:

    function Weiter()
    {

    Darum GEHT ES MIR -->

    if (document.Frage.Rubrik[2].checked == true
     &&  document.Frage.Vorname != ""){
        return true;
     Aber es geht nicht!!! SKANDAL!

    }

    if (document.Frage.Rubrik[0].checked == true){
        alert("Ob das so richtig war? Schauen Sie lieber nochmal nach!");
       return false;

    }
    if (document.Frage.Rubrik[1].checked == true){
       alert("Ob das so richtig war? Schauen Sie lieber nochmal nach!");
       return false;
     }

    if (document.Frage.Rubrik[0].checked == false
    &&  document.Frage.Rubrik[1].checked == false
    &&  document.Frage.Rubrik[2].checked == false){

    alert("Sie haben keine Rubrik ausgewählt! Bitte eine Rubrik aussuchen!");
       return false;
     }

    }

    Bitte dringend um Hilfe!

    Danke

    1. So habe die Reihenfolge nun geändert:

      }
      if (document.Frage.Rubrik[2].checked == true
      &&  document.Frage.Vorname != ""
      &&  document.Frage.Nachnahme != ""
      &&  document.Frage.email != ""){

      alert("Es wurden nicht alle Benutzerdaten eingegeben!");
         return false;

      else

      if (document.Frage.Rubrik[2].checked == true
      &&  document.Frage.Vorname != ""
      &&  document.Frage.Nachnahme != ""
      &&  document.Frage.email != ""){

      return true;

      }

      Irgendetwas stimmt noch nicht mit der else Anweisung... fehlt eine Klammer? Bis dahin erstmal Besten Dank!

      1. Ja es fehlt eine Klammer.

        Und zwar musst Du, wenn i else Block mehrere Methoden aufgerufen werden genauso wie im if Block eine {} klammer drum herum basteln.
        Nur wenn Du exact eine anweisung danach hast geht es auch ohne.

        So habe die Reihenfolge nun geändert:

        }
        if (document.Frage.Rubrik[2].checked == true
        &&  document.Frage.Vorname != ""
        &&  document.Frage.Nachnahme != ""
        &&  document.Frage.email != ""){

        alert("Es wurden nicht alle Benutzerdaten eingegeben!");
           return false;

        else

        if (document.Frage.Rubrik[2].checked == true
        &&  document.Frage.Vorname != ""
        &&  document.Frage.Nachnahme != ""
        &&  document.Frage.email != ""){

        return true;

        }

        Irgendetwas stimmt noch nicht mit der else Anweisung... fehlt eine Klammer? Bis dahin erstmal Besten Dank!