Apex - 离开页面时清除表单(也在重定向时)
Apex - Clear form when leaving page (also on redirect)
目前,如果我填写表单并离开页面,当我 return 进入表单时,表单条目仍然存在。是否可以阻止这些条目被保存?
使用 PS/SQL 填充项目的默认值,但可以调整内容。
我尝试创建一个动态操作来清除 'Page Unload' 上的项目,但这没有做任何事情。这是正确的浏览器事件,还是我的实现有误?
更新: 提供一些上下文...
页数:
- 首页
- 表格
- DML 表单(插入)- 我希望不存储任何修改
第 3 页可以通过第 1 页或第 2 页访问。
如果用户通过第 2 页(另一种形式)访问表单,他们将选择一个特定值,该值用于填充第 3 页上的默认值(通过项目和 PL/SQL 函数体) .
如果用户通过第 1 页访问表单,相同的 PL/SQL 将 运行 - 这可能导致第 3 页表单项为空(NULL 默认值)。
但是,当用户编辑第 3 页项目(从默认值更改)时,这些值将在用户下次访问表单时保留。如何防止捕获此状态?
你可以用这样的东西来做,但首先你需要添加 jQuery 到你的页面。我建议使用内容分发网络 (CDN)。您可以编辑代码以清除表单类型中的值。希望对您有所帮助!
$(document).ready(function() {
$("body")
.find("input").val("")
.end()
.find("select").val("-")
.end()
.find("textarea").val("");
};
});
您需要清除页面缓存。这将清除页面上项目的会话状态,从而导致项目再次为空。
您可能需要在多个位置添加此清除。如果您已经使用列链接访问页面、带有重定向的按钮、分支等 The apex URL has a part which states which pages have to be cleared,并且您通常可以声明性地定义页面缓存的清除。
您还可以创建流程,您可以在其中定义必须清除的页面(或页面)。例如,如果你总是希望在进入页面时清除缓存,无论你来自哪里,你都可以在页面上添加一个进程来清除缓存。
会话状态最终是导致此行为的原因:转到页面,更改一些内容,页面出于任何原因被提交并导致会话状态被保存。
通常,在通过向导生成的 DML 表单上,只有在使用来自另一个位置(通常是上层报表)的 "create" 按钮时才会清除缓存。
Here is the (apex 5.0) documentation on session state and managing it.
目前,如果我填写表单并离开页面,当我 return 进入表单时,表单条目仍然存在。是否可以阻止这些条目被保存?
使用 PS/SQL 填充项目的默认值,但可以调整内容。
我尝试创建一个动态操作来清除 'Page Unload' 上的项目,但这没有做任何事情。这是正确的浏览器事件,还是我的实现有误?
更新: 提供一些上下文...
页数:
- 首页
- 表格
- DML 表单(插入)- 我希望不存储任何修改
第 3 页可以通过第 1 页或第 2 页访问。
如果用户通过第 2 页(另一种形式)访问表单,他们将选择一个特定值,该值用于填充第 3 页上的默认值(通过项目和 PL/SQL 函数体) .
如果用户通过第 1 页访问表单,相同的 PL/SQL 将 运行 - 这可能导致第 3 页表单项为空(NULL 默认值)。
但是,当用户编辑第 3 页项目(从默认值更改)时,这些值将在用户下次访问表单时保留。如何防止捕获此状态?
你可以用这样的东西来做,但首先你需要添加 jQuery 到你的页面。我建议使用内容分发网络 (CDN)。您可以编辑代码以清除表单类型中的值。希望对您有所帮助!
$(document).ready(function() {
$("body")
.find("input").val("")
.end()
.find("select").val("-")
.end()
.find("textarea").val("");
};
});
您需要清除页面缓存。这将清除页面上项目的会话状态,从而导致项目再次为空。
您可能需要在多个位置添加此清除。如果您已经使用列链接访问页面、带有重定向的按钮、分支等 The apex URL has a part which states which pages have to be cleared,并且您通常可以声明性地定义页面缓存的清除。
您还可以创建流程,您可以在其中定义必须清除的页面(或页面)。例如,如果你总是希望在进入页面时清除缓存,无论你来自哪里,你都可以在页面上添加一个进程来清除缓存。
通常,在通过向导生成的 DML 表单上,只有在使用来自另一个位置(通常是上层报表)的 "create" 按钮时才会清除缓存。
Here is the (apex 5.0) documentation on session state and managing it.