Matthias Hekrenz: Fallunterscheidung mit switch

Hallo zusammen!!

Ich habe hier in einem Formular eine Auswahlliste ( <select ...> ), deren Wert ich weiter verarbeiten will. Da die Liste aber ziemlich lang ist und ich Quellcode sparen will, habe ich mich für eine Fallunterscheidung mit switch entschieden.

Aber irgendwie funktioniert das nicht, sondern ich bekomme immer den default-Wert in der messagebox:

var ausgewaehlt = document.forms[0].elements[0].value;
  switch(ausgewaehlt)
   {

case "1":
      alert("Hallo!");
      break;
   default:
      alert("Sie bleiben leider dumm");
      break;

Könnt ihr mir mal auf die Sprünge helfen??

Viele GRüsse

matthias

  1. Hi!

    var ausgewaehlt = document.forms[0].elements[0].value;

    das ergibt immer den gleichen Wert (nämlich den des Elements Nr. 0 in der Form Nr. 0 - und den hast du ja wahrscheinlich fest im Dokument stehn)

    Bei Radio-Buttons ist jeder Radio-Button ein Element (Nicht alle zusammen EIN Element, das den ausgewählten VALUE erhält)
    Bsp:

    <form name="forme">
    <input type=radio name="anam" value="a"> aaa (= document.forme.anam[0])
    <br>
    <input type=radio name="anam" value="b"> bbb (= document.forme.anam[1])
    <br>
    <input type=radio name="anam" value="c"> ccc (= document.forme.anam[2])
    </form>

    du mußt also abfragen, ob document.forme.anam[0].checked==true oder document.forme.anam[1].checked==true oder ...

    Wenn du das ganze in einer FOR-Schleife erledigst (Anzahl der Radio-Buttons = document.forme.anam.length) hast du sogar noch weniger Code als mit SWITCH-Anweisungen (die Text-Ausgaben kannst du ja in einem ARRAY abspeichern und dann das jeweilige Array-Element ausgeben)

    klar?
    mfG
    BRAND

    1. hallo!!

      var ausgewaehlt = document.forms[0].elements[0].value;

      das ergibt immer den gleichen Wert (nämlich den des Elements Nr. 0 in der Form Nr. 0 - und den hast du ja wahrscheinlich fest im Dokument stehn)

      nein nein, das Element 0 im Form 0 ist ja die Auswahlliste!! Und je nachdem, welcher Wert ausgewählt wurde, soll etwas bestimmtes passieren!!

      viele grüsse
         matthias

      1. Hi!

        Auswahlliste!!

        Öha!
        Sorry, mein Fehler - ich bin von Radio-Buttons ausgegangen (damit hatte ich nämlich ein ähnliches Problem)

        Aber zum Problem:

        Auswahllisten besitzt kein Attribut VALUE!

        Du kannst aber den Index des selektierten Eintrages auslesen (document.forms[0].elements[0].selectedIndex)

        Oder den Value der selektierten Option:

        document.forms[0].elements[0].options[document.forms[0].elements[0].selectedIndex].value - dies gibt allerdings nur einen Wert zurück, wenn extra in den <options> ein value="..." angegeben ist.

        mfG
        BRAND

        1. Hallo!!

          Auswahllisten besitzt kein Attribut VALUE!

          schade :-(

          Du kannst aber den Index des selektierten Eintrages auslesen (document.forms[0].elements[0].selectedIndex)

          bringt leider nix, weil sich die Reihenfolge ständig ändert, da die HTML-Datei täglich neu aus einer Access-DB erzeugt wird.

          document.forms[0].elements[0].options[document.forms[0].elements[0].selectedIndex].value -

          Geht noch einfacher:
          var ausgewaehlt = document.forms[0].elements[0].value;

          dies gibt allerdings nur einen Wert zurück, wenn extra in den ><options> ein value="..." angegeben ist.

          werde ich dann wohl machen!!

          Danke für deine schnelle Hilfe!!

          VIele Grüsse
             matthias

          1. Hi!

            Geht noch einfacher:
            var ausgewaehlt = document.forms[0].elements[0].value;

            Jetzt habe ich es natürlich testen müssen, da, wenn es so funktioniert, Auswahllisten doch ein VALUE hätten.

            Nun mutmaße ich mal, daß du mit dem IE arbeitest - der scheint das so zu interpretieren (als hätten Auswahllisten ein VALUE) - im Netscape funktioniert das allerdings nicht!

            mfG
            BRAND

            1. Hallo!!

              Nun mutmaße ich mal, daß du mit dem IE arbeitest - der scheint das so zu interpretieren (als hätten Auswahllisten ein VALUE) - im Netscape funktioniert das allerdings nicht!

              ach man, ja, wahrscheinlich hast du Recht. Ich hab hier leider nur gerade keinen IE, mit dem ich das ausprobieren könnte.

              cu
                 matthias

              1. Hallo nochmal!!

                ach man, ja, wahrscheinlich hast du Recht. Ich hab hier leider nur gerade keinen IE, mit dem ich das ausprobieren könnte.

                ^^^^^
                sollte natürlich Netscape Navigator heisse!!

                VIele Grüsse
                   matthias