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

时间:2019-03-28 15:16:40

标签: oracle oracle-apex required

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

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

因此,在加载页面时,应用程序会高亮显示一个漂亮的'*'符号,表示文本字段的值是必填项。

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

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

在这种情况下,由于符号'*'不是可以设置“服务器端条件”的单独页面项,因此我不知道如何获得此结果。

有人可以帮助我吗?预先谢谢您,致以问候

3 个答案:

答案 0 :(得分:1)

我不认为有任何内置方法可以做到这一点。我做过类似的事情:

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

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

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

答案 1 :(得分:0)

您可以尝试以下代码进行动态操作。希望一切正常。

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

答案 2 :(得分:0)

一种建议是使用APEX API实用地设置文本字段的必需属性。