我的任务是在 Application Express (Apex) 中重新创建旧的 PL/SQL Web Toolkit 前端。
我想在提交页面后以及计算和验证后显示一个弹出窗口。
可以通过单击按钮或按 Enter 键来提交页面。
我已经用谷歌搜索并得到了一个模式弹出窗口(由javascript调用),但我似乎无法在正确的位置调用它。我可以在提交时调用它(在验证之前等),但不能在验证之后调用它。
我尝试在正确的处理点创建一个指向 URL 的分支,然后将 URL 设置为:
javascript:openForm();
但是后来我得到了一个页面不会显示的错误。
有人可以解释一下我该如何做到这一点吗?
顶点版本:4.0.2 甲骨文10g
最佳答案
我想您想要做的是执行验证,将值提交到 session 状态,但不执行进一步的进程。 但是,当您提交页面时,它会发送到服务器;您在页面处理区域中看到的所有内容都会按顺序触发。没有办法在进程中途调用 javascript 函数,因为基本上你不再在客户端了。
您可以做的是在验证同一页面后创建一个分支。重定向到它,但提供 REQUEST
值,例如 OPENFORM
。
创建一个动态操作,在页面加载时触发,并使用执行 javascript 并打开模态页面的真实操作。然后将动态操作的条件设置为 Request = Expression 1
,向表达式 1 (OPENFORM
) 提供请求值。
(请注意,这是条件区域,而不是“时间”区域的“条件”字段)
这应该会导致页面被提交、验证,然后重新加载,但带有请求值,并触发动态操作,打开模态页面。
只是一个兴趣点: 如果此页面上有实际进程,请小心按 Enter 键。默认情况下,按钮提交到 session ,并将请求值设置为其名称,从而可以有条件地执行流程或分支。我相信输入键不会提交请求值集。因此,如果您的分支是有条件的,则 Enter 键可能会跳过它。
关于oracle - 顶点 : Call JavaScript function after validation but before processing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11342593/