• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Suche Formularüberwachung ungespeicherte Änderungen

mikdoe

Moderator
Hi!
Geht darum, Anwender davor zu schützen, das Browsertab zu schließen, die Seite zu wechseln etc., ohne vorher Änderungen in Formulare gespeichert zu haben.

  • Es soll eine übergreifende Lösung sein, also z. B. laden des Code im Head und es sucht sich selbst alle zu überwachenden Felder im Dokument
  • Es sollen alle aktuellen Feldarten und -attribute unterstützt werden
  • Unterstützt werden müssen: Firefox, Chrome, Edge und Opera für Win Desktop
  • Ich möchte es in Einzelfällen auf Formular- oder Feldebene abschalten können
  • Es soll auch per JS später dynamisch erzeugte Felder und Formulare überwachen
  • Für den Feldtyp hidden soll abschaltbar sein
  • Sollte pures JS oder jQuery sein
Weiß da jemand was?
Danke
 
Du könntest im onbeforeunload durch alle input, textarea, select durchgehen und den aktuellen Wert mit dem Standardwert vergleichen. Abhängig von einem data-*-Attribut könntest du das dann auch deaktivieren.
 
Ah cool. Danke!

Und wie mache ich, dass das onblur angehalten und dann je nach Antwort abgebrochen oder fortgesetzt wird? Geht das dann auch mit true oder false?
 
Habe ich verstanden. Mir fehlt jetzt noch Zugriff entweder auf die eine oder andere Entscheidung. Ich muss dann nämlich in einer NODE wieder etwas zurück verändern, und zwar den Ladekreisel wieder weg machen. Chrome verhält sich da nämlich völlig "falsch" was die Ausführung von onsubmit zusammen mit onbeforeunload betrifft.
 
Noch eine Frage: angenommen zwei forms auf der Seite: wie kann ich im onbeforeunload feststellen, in welcher form der User auf submit geklickt hat?
Denn wenn er in der form absendet in der eine Änderung in einem Feld festgestellt wurde, darf ja keine Warnung kommen.
 
Im onbeforeunload hast du diese Information leider gar nicht. Wird onbeforeunload vor onsubmit getriggert?
 
Zurück
Oben