javascript - Apex - 离开页面时清除表单(也在重定向时)

标签 javascript plsql oracle-apex

目前,如果我填写表单并离开页面,当我返回表单时,表单条目仍然存在。是否可以阻止保存这些条目?

项目的默认值是使用 PS/SQL 填充的,但可以调整内容。

我尝试创建一个动态操作来清除“页面卸载”上的项目,但这没有做任何事情。这是正确的浏览器事件,还是我的实现有误?


更新:提供一些上下文......

页面:

  1. 首页
  2. 表格
  3. DML 表单(插入)- 我希望不存储任何修改

第 3 页可以通过第 1 页或第 2 页访问。

如果用户通过第 2 页(一种不同的表单)访问表单,他们将选择一个特定值,这将用于填充第 3 页上的默认值(通过项目和 PL/SQL 函数体)。

如果用户通过第 1 页访问表单,将运行相同的 PL/SQL - 这可能导致第 3 页表单项为空(NULL 默认值)。

但是,当用户编辑第 3 页项目(从默认值更改)时,这些值将在用户下次访问表单时保留。如何防止捕获此状态?

最佳答案

您需要清除页面缓存。这将清除页面上项目的 session 状态,从而导致项目再次为空。
您可能需要在多个位置添加此清除。如果您使用列链接访问页面、带重定向的按钮、分支等。The apex URL has a part which states which pages have to be cleared ,并且您通常可以声明性地定义页面缓存的清除。 Link builder apex 5

您还可以创建流程,您可以在其中定义必须清除的页面(或页面)。例如,如果你总是希望在进入页面时清除缓存,无论你来自哪里,你都可以在页面上添加一个进程来清除缓存。
Process type apex 5 session 状态最终是导致此行为的原因:转到页面,更改一些内容,页面出于某种原因被提交并导致 session 状态被保存。
通常,在通过向导生成的 DML 表单上,只有在使用来自另一个位置(通常是覆盖报表)的“创建”按钮时才会清除缓存。

Here is the (apex 5.0) documentation on session state and managing it.

关于javascript - Apex - 离开页面时清除表单(也在重定向时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33530567/

相关文章:

javascript - react : function passed as a prop not working correctly

JavaScript 未在 HTML 中运行

oracle - 编译无效的 oracle 程序

oracle - 如何判断是否正在使用 PL/SQL 包、过程或函数?

oracle-apex - 在自动完成文本字段中存储 2 个值 : ID and Name

javascript - 无法为 matter.js 设置动画

javascript - 重新选择 - 选择器中未定义的 Prop

sql - pl/sql 冒泡排序

javascript - 顶点 : Redirect after login to a page with arguments

oracle-apex - 带有 [行选择器] : How to set value of column in selected rows on submit 的 APEX 表格形式