Oracle APEX 表格形式,需要将列设为只读。单击“添加行”时在新行上除外

Oracle APEX tabular form, need to make a column Read Only. Except on a new row when “Add Row” is clicked

我是 Oracle APEX 的新手。你能帮我解决以下问题吗? 我正在使用 APEX 5.0

我有一个主详细信息页面,其中有一个表格形式。其中一列正在使用 select 列表中的 LOV。

现在我必须将此列的值设置为只读,以便用户无法更改它,除非在单击“添加行”时在新行上更改。

非常感谢:)

高拉夫

我假设您知道如何使用浏览器的 "Inspect element" 功能。 (如果不是那么这里是如何): 运行 你的页面。然后右键单击要设置为只读的列中的 select 列表之一。 window 将出现在您页面的底部。获取它的名称属性。它应该以 "f0.." 开头(例如 "f01")。 然后在页面的 "Execute on Page Load" 部分,输入以下代码行: $("[name=the_name_you_just_copied]").css("pointer-events","none");

示例行:$("[name=f01]").css("pointer-events","none");

这可以使用 javascript 来完成。阅读以下带有详细说明的演示以执行此类任务 Tabular Form's Column Read-Only and No Duplication and this discussion

例如:

if ($x(field_id).value != "") {
    $x(field_d).readOnly = "readonly";
 }

感谢万斯提供的解决方案。我有一个类似的问题,但我希望它在一个动作上只读。所以 $("[name=f01]").css("pointer-events","none"); 也可以用在任何 javascript 函数中。

function alerts_c(){

     var insno= $v('P14_SYSINSNO');
     var workDate = $v('P14_WORK_DATE');


    $('.t-Report-report tr').last().find('[name=f02]').val(insno)
    $('.t-Report-report tr').last().find('[name=f03]').val(workDate)
    $("[name=f02]").css("pointer-events","none");
    $("[name=f03]").css("pointer-events","none");

    apex.event.trigger(document,"alerts_d");


};