Oracle APEX Shuttle - 从选择中提取 id

问题描述 投票:0回答:1

我需要获取航天飞机LOV(左侧)中所选项目的ID并将该ID返回到页面项目?流程应该是动态的,因此当我更改选择时,页面项目中的 ID 也应该更改。

我尝试过动态操作-设置值,但我无法捕获这个ID。知道如何解决吗?

APEX 19.1

oracle-apex shuttle
1个回答
0
投票

好吧,我猜测你想知道,用户刚刚点击了哪个选项。

Caviat:这不适用于多选。那就有点复杂了。

所以,你需要的是穿梭项目的客户端状态。为此,我们需要一些 JavaScript。

航天飞机的左侧有 id [物品名称]_LEFT。因此,如果您将班车称为“P1_SHUTTLE”,那么它就是“P1_SHUTTLE_LEFT”。

该物品有一个名为

selectedOptions
的属性。 它保存所有当前选定/突出显示的元素和数量(称为长度)的 HTMLCollection。 因此以 EMP 表为例,
document.getElementById("P1_SHUTTLE_LEFT").selectedOptions
看起来像这样:

HTMLCollection { 0: option, 1: option, 2: option, length: 3 }
​0: <option value="KING">​
1: <option value="BLAKE">​
2: <option value="CLARK">
​length: 3

但是,由于我们只查看单个选择,因此我们只会获得该集合的第一个元素

因此,要获取第一个选定元素的值,我们可以使用:

document.getElementById("P1_SHUTTLE_LEFT").selectedOptions.item(0).value

现在,创建一个动态动作

  • 事件类型:点击
  • 选择类型:项目
  • 项目:P1_SHUTTLE

为您所需的页面项目“设置值”。

  • 设置类型:Javascript表达式
  • JS表达式:document.getElementById("P1_SHUTTLE_LEFT").selectedOptions.item(0).value

请记住,我们在这里所做的一切都是客户端。如果你想用它做 pl/sql 的东西,你需要提交页面项。

© www.soinside.com 2019 - 2024. All rights reserved.