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

时间:2017-06-14 07:54:50

标签: oracle-apex

我的主页面中有不同的区域。我想要实现的是根据记录的用户动态禁用一个或多个区域。

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

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

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

对于动态方式'我创建了一个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;

这不起作用。有什么建议?谢谢!

2 个答案:

答案 0 :(得分:2)

服务器端条件是正常的,您可以在其中使用任何形式的声明性表达式,或PL / SQL或SQL查询等。 这些页面在渲染后可能无法切换,因为它们不会首先渲染。

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

提供的代码永远不会存在于编写良好的APEX应用程序中,但我怀疑OP可能是在APEX 3.x上,或在那里学习。

答案 1 :(得分:1)

问题解决了。

需要启动脚本On Load - After Regions

我的设置为On Load - Before Header

所以它无法获得区域的ID