gpt4 book ai didi

javascript - 在 Oracle Apex 中实现对 Shuttle 值的依赖

转载 作者:行者123 更新时间:2023-11-27 22:36:01 25 4
gpt4 key购买 nike

晚上好!

我正在 Oracle Apex 中创建一个页面,这将导致创建一个文档。这个页面有很多字段,比如“文本字段”或“选择列表”等,都有自己的逻辑,而我被两个字段困住了 - 穿梭字段(让它命名为 A)和文本字段(让它命名为 A)命名为 B),这应该取决于第一个。他们的交互方案是这样的:

  • 航天飞机 A 的值为“A”、“B”、“C”、“D”和“其他”;
  • 如果从类车中选择“其他”值,则还应填写文本字段 B。换句话说,在这种情况下,字段 B 为必填项。

我遇到的问题是我无法使字段 B 的行为取决于字段 A 的值。我已经尝试使用从“onChange”事件触发的 JavaScript 函数,如果航天飞机 B 的右半部分具有“其他”值,则该函数应该可以工作。但这种方式并没有像我想要的那样工作,因为“onChange”事件在每次点击航天飞机的两半时都会出现,而我只需要在移动值“other”时才会出现它(可以通过两种方式完成:双击或单击航天飞机上的箭头图标)。

所以问题是:如何在“主从”逻辑中同步穿梭和文本字段?

附:我正在使用 Oracle Apex 4.2.6.0003。我也知道我可以有一个解决方法,仅使用选择列表,但我想尝试使用 Shuttle 来解决问题,特别是考虑到最后一个可能有几乎无限数量的值。

最佳答案

使用静态值作为航天飞机的值列表:

STATIC:A;A,B;B,C;C,Others;OTHERS

使用这样的 jvascript 代码:

$("#P40_SHUTTLE").change(function(){
console.log(apex.item(this).getValue().indexOf("OTHERS") != -1);
})

当选择OTHERS时,将返回true(它在shuttle的值中)。 Change 是在这里监听的正确事件!

将其转换为 DA:

关于换乘类车使用“JavaScript 表达式”类型的“When”条件并使用以下代码:

apex.item(this.triggeringElement).getValue().indexOf("OTHERS") != -1 

然后,您可以使用 DA 的 True 和 False 操作来根据需要显示和隐藏文本字段。我不会比前端更进一步。也许显示文本字段所需的标签,因为它仅在显示字段时显示。在文本字段上添加服务器端验证(提交时),您将在其中检查 Shuttle 值是否存在 OTHERS 值。如果存在,则应该需要该文本字段。

在文本字段上创建验证。“PLSQL 函数体”类型的条件

DECLARE
l_vc_arr2 APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE(:P40_SHUTTLE);
FOR z IN 1..l_vc_arr2.count LOOP
IF l_vc_arr2(z) = 'OTHERS' THEN
RETURN TRUE;
END IF;
END LOOP;

RETURN FALSE;
END;

验证类型:IS NOT NULL
项目:文本字段。

仅当所选值中存在其他值时才会触发验证,然后需要输入文本字段。

关于javascript - 在 Oracle Apex 中实现对 Shuttle 值的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39084001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com