APEX ORACLE - 使用 PL/SQL + Javascript 动态禁用区域

APEX ORACLE - Disable a region dynamically with PL/SQL + Javascript

我的主页有不同的区域。我想要完成的是根据登录用户动态禁用一个或多个区域。

我已经设法在 'static way' 中禁用一个区域。在页面属性中,在 JavaScript 菜单下,在 Execute when Page Loads 中,我输入了以下代码:

$('#R4').addClass('apex_disabled').attr('tabindex', '-1');

其中 R4 是其中一个地区的 ID

对于 'dynamic way' 我创建了一个 Process。例如,如果用户是 ADMIN,我想禁用区域 R4。这是代码(现在我不检查用户,我只是想开始使用禁用功能):

    DECLARE
    user VARCHAR2 (50);

    BEGIN

    select username into user
    from USER
    where username = V('APP_USER');


    htp.p (' <script type = "text/javascript"> ');
    htp.p (' function disableRegion()');
    htp.p (' { ');
    htp.p (' 
    $(''#R4'').addClass(''apex_disabled'').attr(''tabindex'',''-1''); ');
    htp.p (' } ');
    htp.p (' </script> ');


    END;

这是行不通的。有什么建议么?谢谢!

问题已解决。

需要启动脚本 On Load - After Regions

我的设置为 On Load - Before Header

所以无法获取区域的 ID

服务器端条件正常,您可以在其中进行任何形式的声明性表达,或PL/SQL或SQL查询等。 一旦页面呈现,这些可能不会切换回来,因为它们一开始就没有呈现。

客户端条件可能来自页面加载时触发的动态操作,这也可能受到授权方案的保护,因此只有某些动态操作存在触发。但正如有人建议的那样,这并不安全。

所提供的代码永远不会存在于一个编写良好的 APEX 应用程序中,尽管我怀疑 OP 可能在 APEX 3.x 上,或者在那里学到的。