Christopher: history.back() -- IE behält nur Teile des Formulars bei

Hallo!

Ich habe einen echten Patzer entdeckt. Es handelt sich um einen Shop. Dort kann der User im abschließenden Formular bestimmte Optionen per checkbox optional hinzufügen, etc. Den Gesamtpreis berechnet Javascript.

Sind die Extraoptionen gesetzt (default = NICHT gesetzt) und das Formular abgeschickt, sind alle Daten valide. Klickt sich der User allerdings in der History um einen Schritt zurück, wird die vorherige Seite scheinbar wiederhergestellt. Beim Firefox klappts auch prima: Die Extraoptionen sind gesetzt, die Preise stimmen.

Der Internetexplorer hingegen merkt sich zwar die gewählten Positionen, errechnet den Preis aber neu! Ich kann also durch ein Entfernen der Häkchen bei den Extraoptionen theoretisch einen negativen Preis ermitteln! Eher nachteilig.

Am liebsten würde ich, dass der Browser sich gar keine Position merkt, sondern beim history.back() sich neu generiert. Somit wären allen möglichen Fehlerquellen vorgebeugt. Ich kann aber keinen Eventhandler o.ä. finden! Bitte also deshalb um Tipps der anderen.

Thanks a million!

  1. Hi Christopher!

    Wie wäre es denn damit:
    Du verpasst deiner "Häkchen Seite" einen onload handler (z.B im <body> element), der, wenn die Seite geladen wird, alle Häkchen löscht, a la:

    var allExtra = document.getElementsByName("extraOptions");
    for (count=0; count<allExtra.length; count++)
      allExtra[count].checked = 0;

    Grüsse,
    Richard

    1. Hi Christopher!

      Wie wäre es denn damit:
      Du verpasst deiner "Häkchen Seite" einen onload handler (z.B im <body> element), der, wenn die Seite geladen wird, alle Häkchen löscht, a la:

      var allExtra = document.getElementsByName("extraOptions");
      for (count=0; count<allExtra.length; count++)
        allExtra[count].checked = 0;

      Grüsse,
      Richard

      Hallo Richard,

      kann man den onLoad handler auch auf ein untergeordenetes Element anwenden? Ich brauch den nur auf einer aus tausend Seiten. Würde den nur ungerne in den body tag setzen, der lediglich einmal im gesamten Seiten-Code notiert ist...

      Danke!

  2. Hallo,

    Am liebsten würde ich, dass der Browser sich gar keine Position merkt, sondern beim history.back() sich neu generiert.

    so würde ich das auch erwarten, und so bin ich das von meinen Browsern (IE, Opera, Firefox) auch gewöhnt.
    "Back" = "Lade die zuletzt angezeigte Seite neu"

    Leider bedienen sich manche Browser dabei ungeniert aus dem Cache, oder sie merken sich sogar Formulareingaben und stellen die automatisch wieder her. Wenn das konsequent und *vollständig* gemacht wird, kann man sich ja noch damit arrangieren. Aber partiell, so wie du es beschreibst, ist das eine böse Sache.

    Im IE kann man das Verhalten aber recht einfach korrigieren. In den Internet-Optionen unter "temporäre Internetdateien" auf "Einstellungen" klicken, dann unter "auf neue Versionen gespeicherter Seiten" die Einstellung
     (o) bei jedem Zugriff auf die Seite
    wählen.

    So long,
     Martin

    --
    Computer funktionieren grundsätzlich nicht richtig.
    Wenn doch, hast du etwas falsch gemacht.
    1. Im IE kann man das Verhalten aber recht einfach korrigieren. In den Internet-Optionen unter "temporäre Internetdateien" auf "Einstellungen" klicken, dann unter "auf neue Versionen gespeicherter Seiten" die Einstellung
      (o) bei jedem Zugriff auf die Seite
      wählen.

      Hallo Martin,

      leider hilft es dem User wenig, wenn ich meine eigene Browserkonfiguration änder! ...

      *Verzweiflung*

      ..

  3. Hi,

    Ich habe einen echten Patzer entdeckt. Es handelt sich um einen Shop. Dort kann der User im abschließenden Formular bestimmte Optionen per checkbox optional hinzufügen, etc. Den Gesamtpreis berechnet Javascript.

    Wenn die Validierung der Daten ausschliesslich clientseitig erfolgt, dann hast du nicht nur einen Patzer, sondern das Werk eines DAP (duemmster anzunehmender Programmierer) gefunden.

    MfG ChrisB

    1. Hi,

      Ich habe einen echten Patzer entdeckt. Es handelt sich um einen Shop. Dort kann der User im abschließenden Formular bestimmte Optionen per checkbox optional hinzufügen, etc. Den Gesamtpreis berechnet Javascript.

      Wenn die Validierung der Daten ausschliesslich clientseitig erfolgt, dann hast du nicht nur einen Patzer, sondern das Werk eines DAP (duemmster anzunehmender Programmierer) gefunden.

      MfG ChrisB

      Lol! Nicht schlecht.

      Naja, hilft jetzt auch nicht weiter. Man kann immer noch irgendeinen eventhandler auf die Tabelle setzen, der - gesteuert mit einer globalen Variable - nur einmalig aufgerufen wird.

      Viel Spass noch beim weiteren Programmieren allen!