我是 Oracle APEX 的新手。你能帮我解决以下问题吗?我正在使用 APEX 5.0
我有一个主详细信息页面,其中有一个表格形式。其中一列是使用选择列表中的 LOV。
现在我必须将此列值设置为只读,以便用户无法更改它,除非单击“添加行”时在新行上更改。
提前谢谢了 :)
高拉夫
我是 Oracle APEX 的新手。你能帮我解决以下问题吗?我正在使用 APEX 5.0
我有一个主详细信息页面,其中有一个表格形式。其中一列是使用选择列表中的 LOV。
现在我必须将此列值设置为只读,以便用户无法更改它,除非单击“添加行”时在新行上更改。
提前谢谢了 :)
高拉夫
我假设您知道如何使用浏览器的“检查元素”功能。(如果没有,那么方法如下):运行您的页面。然后右键单击要设置为只读的列中的选择列表之一。页面底部会出现一个窗口。获取它的名称属性。它应该是以“f0..”开头的东西(例如“f01”)。然后在页面的“页面加载时执行”部分,输入这行代码:
$("[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以及此讨论
例如:
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");
};