Raphael: Wie alle Eintraege im IE markieren ?

Hallo,

ich besitze eine Auswahlliste, in welcher immer nur ein Eintrag markiert sein kann.

Vor dem Uebermitteln dieser Liste, muss ich ja alle Eintraege auswählen, damit deren Values korrekt uebermittelt werden.

Hier führe ich folgenden Code aus :

=================================
formular.liste.multiple = 1;

for (i = 0; box.options.length; i++)
{
  formular.liste.options[i].selected = true;
}

formular.submit();

==================================

Beim Netscape funktioniert dieser Code und es werden vor dem Übermitteln alle Einträge der Liste selektiert.

Beim IE funzt dies allerdings nicht, und es wird ausschließelich der letzte Eintrag der Liste aktiviert.

Kann mir jemand einen Tipp geben ?

Gruss,

Raphael

  1. hi,

    ich besitze eine Auswahlliste, in welcher immer nur ein Eintrag markiert sein kann.

    Vor dem Uebermitteln dieser Liste, muss ich ja alle Eintraege auswählen

    das ist doch ein widerspruch in sich, oder etwa nicht?

    gruß,
    wahsaga

    --
    [ Hier könnte Ihre Werbung stehen! ]
    1. hi,

      nein - nicht wirklich - vielelicht nur von mir blöd formuliert.

      Ich möchte, daß der Benutzer jeweils nur einen Eintrag in der Liste anklicken kann. Wird solch ein Eintrag angeklickt, werden verschiedene Felder und Liste vorbelegt. Daher wuerde es keinen Sinn machen, daß ein Benutzer mehrere Eintraege in der Liste auswaehlen kann.

      Damit jedoch nach einem submit() alle Einträge der Liste (genauergesagt deren Values) übermittelt werden, müßen alle Einträge der Liste kurz vor dem submit() markiert werden.

      Daher benötige ich das "multiple" um explizit zu erlauben, daß mehrerer Einträge markiert sein können.

      Das scheint allerdings im IE Probleme zu machen.
      Jetzt ist meine Frage, gibt es irgendwie einen Trick, um dies zu erreichen ?

      Gruss,

      Raphael

      hi,

      ich besitze eine Auswahlliste, in welcher immer nur ein Eintrag markiert sein kann.

      Vor dem Uebermitteln dieser Liste, muss ich ja alle Eintraege auswählen

      das ist doch ein widerspruch in sich, oder etwa nicht?

      gruß,
      wahsaga

      1. hi,

        Das scheint allerdings im IE Probleme zu machen.

        akzeptiert der IE denn

        formular.liste.multiple = 1;

        ohne zu murren? (fehlermeldung ...)

        gruß,
        wahsaga

        --
        [ Hier könnte Ihre Werbung stehen! ]
        1. Hallo,

          ja, er akzeptiert diese Zeile mit "multiple"

          Jedoch erst dann, wenn ich die Schleife mit dem markieren "aller Optionen" zweimal durchführe.

          Gruss,

          Raphael

          hi,

          Das scheint allerdings im IE Probleme zu machen.

          akzeptiert der IE denn

          formular.liste.multiple = 1;

          ohne zu murren? (fehlermeldung ...)

          gruß,
          wahsaga

      2. Hallo

        Ich möchte, daß der Benutzer jeweils nur einen Eintrag in der Liste anklicken kann. Wird solch ein Eintrag angeklickt, werden verschiedene Felder und Liste vorbelegt. Daher wuerde es keinen Sinn machen, daß ein Benutzer mehrere Eintraege in der Liste auswaehlen kann.

        Soweit verstanden.

        Damit jedoch nach einem submit() alle Einträge der Liste (genauergesagt deren Values) übermittelt werden, müßen alle Einträge der Liste kurz vor dem submit() markiert werden.

        Was ist der Sinn, dass alle Values der Liste übermittelt werden? Im Normalfall genügt es zur Auswertung eines Formulares die vom User gewünschten Felder zu kennen...

        und nocheinmal, wie willst du dann rausfinden, was vom JS und was vom User markiert wurde?

        Wenn das JS dann weitermarkiert, dann änder sich die Belegung deiner Formularfelder? Gibts davon einen Link?

        Grüsse

        1. Hallo Gant,

          für mich ist schon die komplette Liste mit allen EInträgen releveant.

          Das Anklicken einzelner Einträge soll dem Benutzer nur erlauben, die "Werte" dieses Eintrags zu verändern !

          D. h. hinter jedem Eintrag der Liste verbirgt sich im Value ein String, der bestimmte Informationen sowie eine bestimmte STruktur besitzt.

          Jeder String ( hinter einem Eintrag) kann in Form von Buttons und Menues indirekt verändert werden.

          Dennoch ist die Summe aller Einträge interessant - und meines Wissens kann ich eine Liste mit allen Einträgen nur dann übermitteln, wenn diese aktiviert sind.

          D. h. ich muß vor dem Übermitteln die Liste einmal durchlaufen und jeden einzelnen Eintrag aktivieren. Mein Problem ist aber, daß innerhalb dieser Liste als default nur jeweils ein Eintrag aktiv sein kann - und daher ist diese Einstellung per Javascript kurz vor dem Übermitteln zu ändern.

          Gruss,

          Rapohael

          Hallo

          Ich möchte, daß der Benutzer jeweils nur einen Eintrag in der Liste anklicken kann. Wird solch ein Eintrag angeklickt, werden verschiedene Felder und Liste vorbelegt. Daher wuerde es keinen Sinn machen, daß ein Benutzer mehrere Eintraege in der Liste auswaehlen kann.

          Soweit verstanden.

          Damit jedoch nach einem submit() alle Einträge der Liste (genauergesagt deren Values) übermittelt werden, müßen alle Einträge der Liste kurz vor dem submit() markiert werden.

          Was ist der Sinn, dass alle Values der Liste übermittelt werden? Im Normalfall genügt es zur Auswertung eines Formulares die vom User gewünschten Felder zu kennen...

          und nocheinmal, wie willst du dann rausfinden, was vom JS und was vom User markiert wurde?

          Wenn das JS dann weitermarkiert, dann änder sich die Belegung deiner Formularfelder? Gibts davon einen Link?

          Grüsse

  2. Hallo

    Wieso musst Du alle markieren vor dem senden? Dann weisst Du ja nicht mehr, welcher vom User und welche vom Script markiert sind...

    Falls Deine Liste statisch ist, weisst Du ja sowieso, welche Einträge vorhanden sind..... Wenn s dynamisch ist, haben die Einträge wohl eine Herkunft. Kannst einwenig konkretisieren?

    Grüsse

  3. Hallo Raphael,

    mal abgesehen davon, dass ich deine Denkweise ("vor dem Übermitteln alle Einträge markieren") auch nicht ganz nachvollziehen kann, noch eine andere Kleinigkeit:

    for (i = 0; box.options.length; i++)

    ^
    ---------------

    Entweder hast du dich hier beim Abschreiben vertan (Kopieren wäre sicherer), oder du hast eine böse Endlosschleife. Denn die wird solange ausgeführt, wie der Ausdruck box.options.length wahr, also ungleich Null ist. Da sich box.options.length aber innerhalb der Schleife nicht ändert...

    Denk nochmal drüber nach (auch über das Markieren aller Einträge), dann verstehen wir vielleicht auch, was *wirklich* dein Problem ist und können gezielt helfen.

    So long,

    Martin

    --
    Zum Glück ist alles nur halb so doppelt.
    1. Hallo Martin,

      ich benutze für das Posten in diesem Forum einen anderen PC, als für das Schreiben des Javascriptcodes - Daher handelt es sich um einen Schreibfehler.

      In Wirklichkeit hatte ich natürlich ein "i < box.options.length"

      Wenn ich eine "select-Liste" übermitteln möchte per submit() und alle vorhandenen Einträge in dieser Liste wissen möchte, so muß ich doch alle Einträge dieser Liste markieren ?

      Imho werden doch nur jene Einträge der Liste übermittelt, welche "blau hinterlegt" sind ?

      Gruss,

      Raphael

      Hallo Raphael,

      mal abgesehen davon, dass ich deine Denkweise ("vor dem Übermitteln alle Einträge markieren") auch nicht ganz nachvollziehen kann, noch eine andere Kleinigkeit:

      for (i = 0; box.options.length; i++)
                     ^


      Entweder hast du dich hier beim Abschreiben vertan (Kopieren wäre sicherer), oder du hast eine böse Endlosschleife. Denn die wird solange ausgeführt, wie der Ausdruck box.options.length wahr, also ungleich Null ist. Da sich box.options.length aber innerhalb der Schleife nicht ändert...

      Denk nochmal drüber nach (auch über das Markieren aller Einträge), dann verstehen wir vielleicht auch, was *wirklich* dein Problem ist und können gezielt helfen.

      So long,

      Martin

      1. Hi,

        Wenn ich eine "select-Liste" übermitteln möchte per submit() und alle vorhandenen Einträge in dieser Liste wissen möchte, so muß ich doch alle Einträge dieser Liste markieren ?

        Wenn du weisst, welche Einträge in der Liste ales drin sind, kannst du natürlich auch die alle manuell auf dem Server abfragen. Musst halt nur die HTML-Datei und das Serverskript auf dem gleichen Stand halten. Wenn das Formular generiert wird, nicht mal das.

        ortenau-s-bahner

        --
        ss:} zu:$ ls:} fo:| de:] va:) ch:? sh:( n4:# rl:? br:> js:| ie:( fl:{ mo:)