leo77: Select-Box-Auswahl mit selectedIndex funktioniert nicht

Hallo zusammen,

ich habe ein Formular, welches über mehrere Seiten geht.
Auf der vorletzten Seite befindet sich eine SelectBox.
Wenn man hier beispielsweise den dritten Eintrag auswählt und per Weiter-Button auf die nächste Seite blättert, wird wieder der erste Eintrag angezeigt.

Nun habe ich versucht das Problem zu beheben, indem ich den ausgewählten Wert in einem HiddenFeld speichere. Das klappt soweit auch alles.

Was mich jedoch an den Rand der Verzweiflung bringt ist folgendes:
Im selectedIndex-Wert der SelectBox steht (wie es ja richtig wäre) eine 2, wenn man den dritten Eintrag ausgewählt hat.
Sprich alert(document.getElementById('kk_art').options.selectedIndex); spuckt mir hier eine 2 aus.

Angezeigt wird aber trotzdem der erste Eintrag, was aber doch selectedIndex=0 entspricht.

Hat irgendjemand eine Idee, wie ich die Anzeige der Box dazu bringen kann, auch mal einen anderen Eintrag außer dem ersten anzuzeigen?

Folgende Versuche führten alle nicht zum Erfolg, warfen aber auch keine Fehler in der Fehlerkonsole aus ("auswahl" ist der im HiddenFeld gespeichert Auswahlwert, in diesem Beispiel 2):

document.bestell_form.kk_art[auswahl].selected = "selected";
document.getElementById('kk_art').options.selectedIndex = auswahl;
document.getElementById('kk_art').options[auswahl].selected = true;

Freue mich über jeden Tipp,
leo77

  1. Hi,

    ich habe ein Formular, welches über mehrere Seiten geht.
    Auf der vorletzten Seite befindet sich eine SelectBox.
    Wenn man hier beispielsweise den dritten Eintrag auswählt und per Weiter-Button auf die nächste Seite blättert, wird wieder der erste Eintrag angezeigt.

    Auf der „nächsten Seite“ befindet sich also ebenfalls ein Selectfeld?
    Wenn ja, hat dies natürlich überhaupt keinen Bezug zu dem anderen Selectfeld, so lange du keinen herstellst.

    Nun habe ich versucht das Problem zu beheben, indem ich den ausgewählten Wert in einem HiddenFeld speichere.

    Wozu?

    Was mich jedoch an den Rand der Verzweiflung bringt ist folgendes:
    Im selectedIndex-Wert der SelectBox steht (wie es ja richtig wäre) eine 2, wenn man den dritten Eintrag ausgewählt hat.
    Sprich alert(document.getElementById('kk_art').options.selectedIndex); spuckt mir hier eine 2 aus.

    Angezeigt wird aber trotzdem der erste Eintrag, was aber doch selectedIndex=0 entspricht.

    Dann machst du irgendwas falsch.
    Was, lässt sich mangels Code nicht sagen.

    Hat irgendjemand eine Idee, wie ich die Anzeige der Box dazu bringen kann, auch mal einen anderen Eintrag außer dem ersten anzuzeigen?

    Entweder, in dem du den Eintrag bereits beim Ausgeben des Formulars (dynamisch) im HTML vorselektierst - oder in dem du das per JavaScript machst, falls es angebracht sein sollte. (Ob es das ist, lässt sich aus deiner bisherigen Beschreibung des Ablaufes noch nicht erkennen; die Tendenz geht aber zum „Nein“, wenn es sich um mehrere einzelne Formularseiten handelt.)

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Auf der „nächsten Seite“ befindet sich also ebenfalls ein Selectfeld?
      Wenn ja, hat dies natürlich überhaupt keinen Bezug zu dem anderen Selectfeld, so lange du keinen herstellst.

      Hmmm. Da habe ich mich wohl missverständlich ausgedrückt. Die "nächste Seite" ist eigentlich immer noch die gleiche Seite. Es gibt quasi mehrere Ansichten ein und desselben Formulars. Mit dem Weiter-Button werden Eingaben geprüft und je nach Ergebnis Teile des Formulars ein- oder ausgeblendet. Ein Reload der Seite findet dabei auch nicht statt.

      Wozu?

      Um bei Bedarf wieder auf diesen Wert zugreifen zu können.
      Die Text- und HiddenFelder behalten ihre Werte im Gegensatz zu meiner SelectBox ja bei.

      Dann machst du irgendwas falsch.
      Was, lässt sich mangels Code nicht sagen.

      Hab gerade versucht den relevanten Codeteil zusammenzustellen.
      Hier tritt das Problem aber dann gar nicht mehr auf.
      Aber das komplette Projekt hier zu posten macht auch wenig Sinn. Diese Textmassen will ja auch keiner durcharbeiten.

      Entweder, in dem du den Eintrag bereits beim Ausgeben des Formulars (dynamisch) im HTML vorselektierst - oder in dem du das per JavaScript machst, falls es angebracht sein sollte. (Ob es das ist, lässt sich aus deiner bisherigen Beschreibung des Ablaufes noch nicht erkennen; die Tendenz geht aber zum „Nein“, wenn es sich um mehrere einzelne Formularseiten handelt.)

      Wie gesagt: einzelne (unterschiedliche) Formularseiten sind es nicht.

      Was mich einfach wundert, ist die Tatsache, dass laut der alert-Ausgabe ja der richtige Wert da ist. Und da die SelectBox (kk_art) eindeutig ist, müsste diese doch dann auch richtig angezeigt werden.

      Naja. Da werd ich schauen müssen, wie ich das hinbekomme.

      1. Hi,

        Hmmm. Da habe ich mich wohl missverständlich ausgedrückt. Die "nächste Seite" ist eigentlich immer noch die gleiche Seite. Es gibt quasi mehrere Ansichten ein und desselben Formulars. Mit dem Weiter-Button werden Eingaben geprüft und je nach Ergebnis Teile des Formulars ein- oder ausgeblendet. Ein Reload der Seite findet dabei auch nicht statt.

        der Browser könnte also im Offline-Modus sein und es würde trotzdem funktionieren? Dann reicht auch eine Variable oder Objekteigenschaft, Du musst kein verstecktes Eingabefeld erzeugen.

        Hab gerade versucht den relevanten Codeteil zusammenzustellen.
        Hier tritt das Problem aber dann gar nicht mehr auf.
        Aber das komplette Projekt hier zu posten macht auch wenig Sinn. Diese Textmassen will ja auch keiner durcharbeiten.

        Ich begrüße diese Entscheidung. In einem solchen Fall ist ein minimiertes Online-Beispiel von Vorteil - aus drei Gründen: Erstens kann ein potenzieller Helfer haptisch verstehen, was Du meinst; zweitens findet durch die Minimierung eine Anonymisierung der Daten statt; drittens findet man bei diesem Vorgang häufig das entscheidende Bisschen, das das Problem verursacht.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. hi ho,

    mal so als Frage was hast du im Form-Tag für action stehen?
    Falls nichts versuchs mal mit

    action="JavaScript:void(0);"

    das könnte eine Ursache sein. Falls nicht, bräuchte ich auch nen Teilauszug vom Code oder Formular.

    mfg