Apex - Formular Löschen beim verlassen einer Seite (auch per redirect)
Derzeit, wenn ich füllen Sie ein Formular aus und verlassen Sie die Seite, die Formular-Einträge noch vorhanden sein, wenn ich zurück in die form. Ist es möglich, zu verhindern, dass diese Einträge nicht gespeichert?
Der Elemente default-Werte sind bevölkert mit PS/SQL, aber der Inhalt kann angepasst werden.
Habe ich versucht die Schaffung einer dynamischen Aktion deaktivieren Sie die Elemente auf "Seite Entladen", aber dieses etwas nicht tun. Ist dies die richtige browser-event, oder habe ich einfach nur die Umsetzung falsch?
Update:, Um etwas Kontext...
Seiten:
- Home
- Form
- DML-Formular (einfügen) - ich möchte die änderungen nicht gespeichert werden
Seite 3 kann zugegriffen werden über Seite 1 oder Seite 2.
Wenn der Benutzer auf die form über-Seite 2 (eine andere form), die Sie ausgewählt haben einen bestimmten Wert und wird verwendet, um füllen Sie die Standardwerte auf Seite 3 (per item-und PL/SQL-Function-Body).
Wenn der Benutzer auf das Formular über die Seite 1, die gleichen PL/SQL ausgeführt werden - dies kann dazu führen, Seite 3 Formular-Elemente, die nicht leer (NULL default Werte).
JEDOCH, wenn der Benutzer änderungen Seite 3 posten (ändern von default-Werten), diese Werte bleiben erhalten, wenn der Benutzer als Nächstes greift auf das Formular. Wie kann ich verhindern, dass dieser Staat vor der Gefangennahme?
- Können Sie uns einige weitere Informationen auf der Seite des Formulars? Was es bedeutete, zu tun? Wie wollen Sie "return", um es?
- Ich habe aktualisiert die Frage mit mehr Kontext.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie den cache für die Seite. Dies löscht die session-Status der Elemente auf der Seite und kann so in die Elemente wieder leer.
Möglicherweise müssen Sie fügen Sie diese klar auf mehrere Standorte. Wenn Sie verwendet haben, Spalte links, auf die Seite zuzugreifen, Knöpfe mit Umleitungen, äste, etc. Die apex URL, die Mitgliedstaaten, die Seiten müssen gelöscht werden, und Sie können in der Regel definieren diese Reinigung des page-cache deklarativ.
Können Sie auch schaffen-Prozesse, in denen Sie festlegen können, welche Seite (oder Seiten) werden gelöscht. Zum Beispiel, wenn Sie wollen immer der cache gelöscht werden, wenn die Eingabe von der Seite, egal wo Sie herkommen, könnte man hinzufügen, einen Prozess auf der Seite genau das zu tun.
Sitzungszustand ist letztlich, was die Ursache für dieses Verhalten: gehen Sie zu der Seite, ändern sich einige Dinge, Seite vorgelegt wird, für, was Grund und Auslöser session state gespeichert werden.
In der Regel, auf DML-Formen entstehen durch den Assistenten, der cache würde nur gelöscht werden, wenn mit dem button "erstellen" kommt von einem anderen Ort (in der Regel die darüber liegende Bericht).
Hier ist die (apex 5.0) - Dokumentation auf session-Staat und Verwaltung.
Können Sie es mit etwas wie dieses, aber Sie müssen zuerst add jQuery auf Ihrer Seite. Ich empfehlen die Verwendung eines content delivery network (CDN). Sie können den code Bearbeiten, um den Wert zu löschen, in Ihre Art Formen. Ich hoffe das konnte dir helfen!
jQuery-CDN-B.
apex.jQuery(document).ready(function()
schwimmende rund um das internet.$.noConflict();
, aber dann müssen Sie schalten Sie Ihr $ sign in jQuery. Beispiel :$.noConflict(); jQuery(document).ready(function() ...
apex.jQuery.ready()
Funktionen genauso gut. Sie können jedoch, verwenden Sie einfach eine dynamische Aktion mit "Seite Geladen". Außerdem, diese Antwort nicht wirklich decken die Spitze Anwendungsfall. Dies ist nicht der Weg zu "clear" - Seite ist, wie Werte befinden sich noch in der Sitzung.Auf unserer Startseite haben wir drei Blöcke zu wählen, die Seite zu gehen.
Zwei dieser Seiten haben ein Suche-Feld, das leer sein muss beim öffnen der Seite.
Bei der Rückkehr auf die Seite der bisherigen such-string nicht angezeigt werden sollen.
Wir verwenden diese Abfrage, um die drei Blöcke:
( wiederholen Sie den Vorgang für die Blöcke 2 und 3 ).
Parameter p_clear_cache stellt sicher, dass bei der Rückkehr auf Seite 5 seine bisherige Inhalt gelöscht werden.