Ingvild: Javascript

Hallo,

kann man mit Javascript oder Perl folgendes machen:
Eine if-Bedingung, die wenn eine Formularfrage ausgefüllt ("checked") ist, weiterschaltet auf ein zweites Formular (survey2.htm), das weitere Fragen enthält?

Mein Versuch, der nicht funktioniert:

<script language="JavaScript">

<!--
if (form input type="radio" name="FrageNutzung_1" value="ja (3) 1" checked);

function FormFenster()
{
FormularNeu = window.open ("survey2.htm", "FormularNeu", "height=400, width=680");
FormularNeu.focus ();
}
//-->

</script>
</head>
<body onLoad="FormFenster()" bgcolor="#CEE0EA">

  1. Hallo,

    kann man mit Javascript oder Perl folgendes machen:
    Eine if-Bedingung, die wenn eine Formularfrage ausgefüllt ("checked") ist, weiterschaltet auf ein zweites Formular (survey2.htm), das weitere Fragen enthält?

    ja das geht.

    Mein Versuch, der nicht funktioniert:

    Leider fehlen dir scheinbar die grundlegenden Ideen und Strukturen von Javascript. ok dann step-by-step

    <script language="JavaScript">

    wird zu
    <script language="JavaScript" type="text/javascript">
    type mus html-konform gesetzt sein http://www.w3.org/TR/html4/interact/scripts.html#edef-SCRIPT
    (die meisten Browser können das aber auch ohne)

    <!--
    if (form input type="radio" name="FrageNutzung_1" value="ja (3) 1" checked);

    Die Frage ist, wie greif ich auf ein Objekt zu?
    http://selfhtml.teamone.de/javascript/objekte/forms.htm
    also hier z.b.
    document.Name_deines_Form.FrageNutzung_1.checked
    Ist ein Radiobutton an ?http://selfhtml.teamone.de/javascript/objekte/elements.htm#checked

    function FormFenster()
    {
    FormularNeu = window.open ("survey2.htm", "FormularNeu", "height=400, width=680");
    FormularNeu.focus ();
    }

    dies würde ein neues Fenster öffnen, falls die Funktion jemals aufgerufen wird
    falls du im "gleichen" Fenster bleiben willst ist
    location.href
    die besser Wahl http://selfhtml.teamone.de/javascript/objekte/location.htm#href

    //-->

    </script>
    </head>
    <body onLoad="FormFenster()" bgcolor="#CEE0EA">

    Das heisst, nach dem Laden des Dokuments wird sofort ein Fenster aufgepoppt.
    So wie ich es verstanden hab, möchtest du, falls eine Checkbox ange"ixt" wird, ein zweites Fenster öffnen. Dann ist der Eventhandler des Radiobuttons der richtige Ort:
    <input type="radio" name="FrageNutzung_1" value="ja (3) 1" onClick="tuWas();">

    in der zu schreibenden Funktion tuWas sollte dann wie oben erwähnt der Status des Radiobuttons abgefragt werden und dann entsprechend verzweigt werden.

    Viel Erfolg beim Nachkochen

    1. Hallo Vimes,

      Danke für die Anleitung! Ich versuch's mal!
      Stimmt, ich bin kein JavaScript-Fuzzi, sonst hätte ich ja auch nicht hier gefragt ;-)

      Grüsse

      Ingvild

    2. Hallo Vimes,

      ja, richtig, wenn die Radio-Buttons in survey.htm "checked" sind, sollte sich das Formular survey2.htm mit weiteren speziellen Fragen öffnen.

      So ganz köchelt das allerdings nocht nicht trotz der guten Linkverweise :-(

      <script language="JavaScript" type="text/javascript">

      <!--
      if (document.survey.FrageNutzung_1.checked == true)

      window.location.href="survey2.htm"

      //-->

      </script>

      im HTML-Coding:

      form name=survey

      ....

      <input type="radio" name="FrageNutzung_3"  value="ja  (3)3" onClick="openWindow("survey2.htm");">

      1. Hallo Ingvild

        So ganz köchelt das allerdings nocht nicht trotz der guten Linkverweise :-(

        dabei bist du so nah dran:

        <script language="JavaScript" type="text/javascript">
        <!--

        function openWindow(destination) {

        if (document.survey.FrageNutzung_1.checked == true)

        window.location.href=destination;
        }

        //-->
        </script>

        im HTML-Coding:

        <form name="survey">

        <input type="radio" name="FrageNutzung_1"  value="ja  (3)3"
                                               ^ 1 oder 3? muss das gleiche wie im Script sein.

        onClick="openWindow("survey2.htm");">

        Schönen Gruß von nem JavaScript-Fuzzi ;-)

        1. Hallo Ingvild

          latürnich

          onClick="openWindow('survey2.htm');">

          1. Hallo lieber Javascriptfuzzi,

            Kompliment, es tut soweit, dass es funktioniert, aaaber ich bekomme
            noch Scripterrors im Editor: "Nicht abgeschlossene Zeichenfolgekonstante" und danach "Objekt erwartet".

            Vielleicht hast Du noch einen schlauen Rat ...

            Ingvild

            1. Hallo lieber Javascriptfuzzi-Anwärter,

              Kompliment, es tut soweit, dass es funktioniert, aaaber ich bekomme
              noch Scripterrors im Editor: "Nicht abgeschlossene Zeichenfolgekonstante" und danach "Objekt erwartet".

              Dein Editor bringt diese Fehlermeldung? - Dann irrt er höchstwahrscheinlich. Solange der Browser nicht schimpft (beim IE würde unten links unten ein gelbes Warnschild sein) wird der Code in Ordnung sein.

              Es kann sein das der Editor über "onClick=openWine('blah')" stolpert, da für ihn wohl ' und " Marker für Text sind.

              1. ... ojeh, eher Oberanwärter ;-)

                nee, der Editor ist unschuldig, es ist ein gelbes Warnschild beim IE zu sehen, obwohl es funktioniert, vermute auch, dass irgendwo ein ' fehlt, sehe aber im Moment noch nicht, wo.
                Hast Du einen JavaScript-Kurs gemacht oder Dir alles über SelfHTML beigebracht?

                1. ... ojeh, eher Oberanwärter ;-)

                  was nicht ist ...

                  nee, der Editor ist unschuldig, es ist ein gelbes Warnschild beim IE zu sehen, obwohl es funktioniert, vermute auch, dass irgendwo ein ' fehlt, sehe aber im Moment noch nicht, wo.

                  dann klick einmal drauf und merk dir die Fehlermeldung( inkl. Zeilennummer).
                  Fehlermeldung zusammen mit dem Code hier posten und man kann sehen, was da so falsch läuft.

                  Hast Du einen JavaScript-Kurs gemacht oder Dir alles über SelfHTML beigebracht?

                  Gibt es dafür Kurse ??

  2. versuchs mal hiermit:

    <html>
    <head><title></title></head>
    <script language="JavaScript">
    <!--
    function onS()
    {
     if (document.f.FrageNutzung1.checked==true)
     {
      FormFenster();
     }
    }

    function FormFenster()
    {
     var win1 = window.open("survey2.htm", "FormularNeu", "height=400, width=680");
     win1.focus ();    // <-- funktioniert das wirklich???
    }
    //-->
    </script>
    </head>
    <body bgcolor="#CEE0EA">
    <form name="f" onSubmit="onS()">
    <input name="FrageNutzung1" type="radio" value="ja (3) 1">
    </form>
    </body></html>

    Marc Reichelt || www.marcreichelt.de