javascript - 在 Oracle ApEx 中更改其他文本项时设置文本字段的显示值

标签 javascript plsql textfield oracle-apex

我有一个 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/

相关文章:

objective-c - 方法 "shouldChangeTextInRange"和 "stringByReplacingCharactersInRange"是如何工作的?

reactjs - 如何在网格容器中将 TextField 扩展到全宽?

javascript - 将返回值显示为文本

javascript - WordPress 中关于 AJAX 调用的重复帖子

JavaScript: `if (!x)` 和 `if (x == null)` 之间有什么区别?

sql - 甲骨文 11g "Bind variable does not exist"

javascript - 导致 "Cannot call method ' getElementsByTagName' of null "的错误?

sql - ORA-00984 列在 PL/SQL 过程中不允许出现

sql - 在 pl/SQl 中继续语句?

java - 如何使用 SWT 组合按钮和文本字段