我有一个 Oracle ApEx(版本 4.2.5)数据库应用程序,其中有 1 个显示表中当前记录的“主页”类型页面和一个“DML 表单”类型页面,您可以在其中插入/更新/删除记录到同一页面 table 。这是一个通用的“报告和表单”类型应用程序。
在第二页上,我想在更改名为 P2_KOD 的特定文本字段时设置 4 个文本字段的值。为此,我创建了一个关于该特定文本字段的动态操作。我已将事件设置为“更改”,将选择类型设置为“项目”,将项目设置为“P2_KOD”并将条件保留为空(即“- 无条件 -”)。
然后我添加了一个真正的操作来设置 4 个文本字段的值。我尝试过“PL/SQL 函数体”和“JavaScript 表达式”的“设置值”操作。但我无法设置该 4 个文本字段的显示值。我知道我可以设置这 4 个文本字段的 session 值,因为我看到它们处于“已插入”状态,并在“Seesion”信息中分配了正确的项目值。
我的配置有什么问题吗?
Edit#1:我在 apex.oracle.com 上创建了相同的场景。您可以使用以下凭据登录并查看“应用程序 76791 - 简单代表和表单应用程序”。有一个名为“WHEN_DEPT_CHANGED”的动态操作,该操作应将 P2_COMM 的值更改为部门值的 3 倍。
Workspace: DANTE_DEO
UN : anonymous_developer
PW : ad
最佳答案
您收到错误:
Uncaught TypeError: string is not a function
对于“执行 JS 代码”中的此 JS:
$x('P2_COMM').innerHTML = $x('P2_EMPNO').value() * 3;
$x('P2_COMM').value = $x('P2_EMPNO').value() * 3;
这是因为 .value() 不是一个函数,它就像一个属性。更改为:
$x('P2_COMM').innerHTML = $x('P2_EMPNO').value * 3;
$x('P2_COMM').value = $x('P2_EMPNO').value * 3;
你应该做生意。
方便的提示:您可以使用 Google Chrome 中的控制台(按 F12,导航到控制台并刷新页面)或使用 Firefox 中的 Firebug 扩展来调试 Apex(或任何其他内容)中的 JS 代码。
关于javascript - 在 Oracle ApEx 中更改其他文本项时设置文本字段的显示值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062647/