Jürgen Seelig: Werte der Liste/Menü zur Laufzeit ändern

Hallo,

ich versuche seit einiger Zeit folgendes hinzubekommen:

man wählt aus einem Auswahlfeld einen bestimmten Wert aus. Dann soll sich in einem zweiten Auswahlfeld der Inhalt ändern.

Wie man das mit normalen Textfeldern hinbekommt weis ich:
z.B.
onFocus="if(feld1.value=='TEST')feld2.value='TEST123'"

Aber wie heisst das bei einem Auswahlfeld? Es muß irgendwie so ähnlich wie

onFocus="if(Auswahlfeld1.option.value=='TEST')feld2.value='TEST123'"

wäre schön, wenn mir einer nen paar tipps, oder eine Lösung geben könnte.

Besten Dank

Jürgen Seelig

  1. Hallo,

    Hallöle!

    Ausnahmsweise poste ich mal die Lösung :)

    <!doctype html public "-//W3C//DTD HTML 4.01 //EN">
    <html>
    <head>
    <title>Formular beinflussen</title>
    <meta name="author" content="fastix">
    <meta name="generator" content="Ulli Meybohms HTML EDITOR">
    </head>
    <body>
    <a id="link1" onClick="document.forms['formular1'].test.options[0].value='Test 1'; document.forms['formular1'].test.options[0].innerText='Test 1'">Test 1</a><br>
    <a id="link2" onClick="document.forms['formular1'].test.options[1].value='Test 2'; document.forms['formular1'].test.options[0].innerText='Test 2'">Test 2</a><br>

    <form action="" method="" target="" name="formular1">
    <select name="test">
    <option value="Wert 1" id="W1">Wert 1</option>
    <option value="Wert 2" id="W2">Wert 2</option>
    </select>
    </form>

    </body>
    </html>

    1. Da war noch was zu korrigieren....

      Das "Geheimnis" Die Optionen sind ebenfalls durchnummeriert. Du musst Sie also auch so adressieren:

      document.forms['FORMULARNAME'].NAME_SELECT.options[NR_OPTION].value="Wert"
      Außerdem musst Du noch mit innerText den Text ändern.

      Hier die korrigierte Lösung:

      <!doctype html public "-//W3C//DTD HTML 4.01 //EN">
      <html>
      <head>
      <title>Formular beinflussen</title>
      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
      <meta name="author" content="fastix">
      <meta name="generator" content="Ulli Meybohms HTML EDITOR">
      </head>
      <body>
      <a id="link1" onClick="document.forms['formular1'].test.options[0].value='Test 1'; document.forms['formular1'].test.options[0].innerText='Test 1'">Test 1</a><br>
      <a id="link2" onClick="document.forms['formular1'].test.options[1].value='Test 2'; document.forms['formular1'].test.options[1].innerText='Test 2'">Test 2</a><br>

      <form action="" method="" target="" name="formular1">
      <select name="test">
      <option value="Wert 1">Wert 1</option>
      <option value="Wert 2">Wert 2</option>
      </select>
      </form>

      </body>
      </html>

    2. Hallo,

      danke für deine antwort. Leider meinte ich das etwas anders.

      ich will, dass ein select1-feld mit den inhalten einer datenbank1 gefüllt wird. gehen wir mal davonaus, der inhalt der datenbank1 und damit auch des select1-feldes ist:

      text   =>  Value

      test1  =>  1
      test2  =>  2
      test3  =>  3
      test4  =>  4

      Wenn ich dann z.b. test2 auswähle, soll er automatisch ein zweites select-feld (select2-feld) mit dem inhalt aus der datenbank2 füllen.

      Wenn ich aber z.b. test4 auswähle, soll er automatisch ein zweites select-feld (select2-feld) mit dem inhalt aus der datenbank4 füllen.

      ich hoffe so ist es verständlicher.

      nochmal besten dank

      Jürgen

      1. Wo ist denn die Datenbank?

        Eventuell ist es sinnvoll PHP/Perl/CGI zu benutzen.
        Jetzt und hier eine Lösung zu entwickeln und zu posten halte ich mit dem, was ich bisher weiss augenblicklich nicht für sinnvoll.

        Vielleicht hilft dir ja auch weiter, dass du Elemente löschen und mit documentGetElementsById[].innerHtml="" ein komplett neues Select erzeugen kannst.

        fastix

  2. Hallo,

    ich versuche seit einiger Zeit folgendes hinzubekommen:

    man wählt aus einem Auswahlfeld einen bestimmten Wert aus. Dann soll sich in einem zweiten Auswahlfeld der Inhalt ändern.

    Wie man das mit normalen Textfeldern hinbekommt weis ich:
    z.B.
    onFocus="if(feld1.value=='TEST')feld2.value='TEST123'"

    Aber wie heisst das bei einem Auswahlfeld? Es muß irgendwie so ähnlich wie

    onFocus="if(Auswahlfeld1.option.value=='TEST')feld2.value='TEST123'"

    wäre schön, wenn mir einer nen paar tipps, oder eine Lösung geben könnte.

    Mal bei selfHMTL gucken?

    option felder sind Arrays, du brauchst den Index des Auswahlfeldes (selectedIndex) und um options einzufügen kannst du new Option() verwenden.

    Steht aber alles auch hier http://selfhtml.teamone.de/javascript/objekte/options.htm

    Struppi.