2

我的任务是在 Application Express (Apex) 中重新创建一个旧的 PL/SQL Web Toolkit 前端。

我想在页面提交后以及计算和验证后显示一个弹出窗口。

该页面可以通过单击按钮或按 Enter 提交。

我已经用谷歌搜索并得到了一个模态弹出窗口(由 javascript 调用),但我似乎无法在正确的位置调用它。我可以在提交时调用它(在验证之前等),但不能在验证之后调用它。

我尝试在正确的处理点创建一个指向 URL 的分支,然后将 URL 设置为:

javascript:openForm();

但是后来我得到一个页面不会显示错误。

任何人都可以解释我怎么能做到这一点?

Apex 版本:4.0.2 Oracle 10g

4

1 回答 1

2

我想您想要做的是执行验证,将值提交到会话状态,但不执行进一步的过程。但是,当您提交页面时,它会发送到服务器;并且您在页面处理区域中看到的所有内容都会依次触发。没有办法在进程中途调用 javascript 函数,因为基本上你不再在客户端了。

您可以做的是在验证到同一页面后创建一个分支。重定向到它但提供一个REQUEST值,例如OPENFORM.

创建一个动态动作,在页面加载时触发,使用执行 javascript 并打开模态页面的真实动作。然后将动态操作的条件设置为Request = Expression 1,将请求值提供给表达式 1 ( OPENFORM)。(请注意,这是条件区域,而不是“时间”区域的“条件”字段)

这应该会导致页面被提交、验证,然后重新加载但带有请求值,并且动态操作触发,打开您的模式页面。

只是一个兴趣点:如果您在此页面上有实际流程,请小心使用 Enter 键。默认情况下,按钮提交到会话,请求值设置为其名称,因此可以有条件地执行流程或分支。我相信输入键没有提交请求值集。因此,如果您的分支是有条件的,则回车键可能会简单地跳过它。

于 2012-07-05T11:50:51.543 回答