Oracle Apex 5.1 - 如何根据特定条件在文本字段中动态显示/隐藏'*'必需符号

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

我有一个包含两个项目的页面:

  • 第一项是带有两个可能的字符串值的“选择列表”('String choice 1','String choice 2');
  • 一个简单的文本字段,我在项目的Appearence部分中应用了Template ='Required'

因此,当加载页面时,应用程序会显示一个很好的“*”符号,以突出显示文本字段的值是必需的。

这就是问题所在:当用户在选择列表中选择字符串'String choice 1'时,我需要隐藏'*'符号,而当用户选择字符串'String choice 2'时我需要再次显示它选择列表。

换句话说,仅当用户在选择列表项中选择“字符串选择2”时,才需要文本字段的值。

在这种情况下,因为符号'*'不是一个单独的页面项,因此可以设置“服务器端条件”,因此我不知道如何获得此重新启动。

有人能帮我吗 ?提前谢谢,最诚挚的问候

oracle oracle-apex required
3个回答
1
投票

我不相信有任何内置的方法来做到这一点。我做过类似的事情:

  1. 创建一个自定义Javascript函数,该函数接受Apex页面项的id作为参数。该函数定位该项目的标签,并根据需要/不需要进行任何样式更改。
  2. 在您的应用程序中创建一个动态事件,其中包含一个Change事件,并将您的选择列表作为触发事件的项目。事件操作将是Execute Javascript,要执行的JS是您在(1)中创建的函数。

(1)中的样式更改将取决于您正在使用的Apex模板的确切主题,因此我不能更具体。我想我使用的是较旧的一个,它涉及在标签文本之前添加<img>。其他模板可能需要将类添加到标签或其他内容。我认为在这种情况下,找到页面项的标签就像使用#P1_ITEM_LABEL的jQuery选择器一样简单。

所有这一切都改变了标签的样式,因此它向用户指示该字段是否必需。它实际上并没有强制执行。您还需要添加用户已选择值的验证并使其成为条件,以便在实际需要该字段时执行。


0
投票

您可以在动态操作中尝试以下代码。希望这很好。

$('#P1_TEXT').attr("required", "true");

0
投票

一个建议是使用APEX API以实际方式设置文本字段的必需属性。

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