0

我在 Oracle Apex 的应用程序的一页上有多个文件浏览器项字段。会发生什么:当我错过任何触发验证错误的项目时,我想将该文件保存到浏览器,但如果我收到验证错误,我通常会丢失它。除了文件浏览器项目字段之外,是否有其他项目字段保持先前值的解决方案。请看下面的ss:

在此处输入图像描述

4

2 回答 2

0

Anshul,APEX 4.2 非常老旧,不再受支持。APEX 的更高版本(或最好是最新版本)的行为与 Dan 上面解释的不同。

您能否将您的应用程序导入 apex.oracle.com(运行 APEX 20.1),您可能会看到更好的结果。基于此,您有望将其用作升级环境的理由。

问候,大卫

于 2020-05-01T14:51:42.133 回答
0

转到您的页面级属性和函数和全局变量声明中的如下函数:

function validateItems(request) {
  var $file1 = $('#P68_FILE_1');
  var $file2 = $('#P68_FILE_2');
  var errorsFound = false;

  if ($file1.val() === '') {
    errorsFound = true;
    // Show item in error state
  }

  if ($file2.val() === '') {
    errorsFound = true;
    // Show item in error state
  }

  if (!errorsFound) {
    // I think doSubmit was the name of the function back then. If not, try apex.submit
    doSubmit(request);
  } else {
    // Show error message at top of page, I'll use a generic alert for now
    alert('You must select a file for each file selector.');
  }
}

然后,右键单击Create按钮并选择Create a Dynamic Action。将 Dynamic Action 的名称设置为Create button clicked

对于 Action,将Type设置为Execute JavaScript Code。在代码中输入以下JS:

validateItems('CREATE');

最后,确保Fire on Initialization被禁用。

对Save按钮重复该过程,但将传递给的请求值更改validateItemsSAVE

于 2020-05-05T22:59:23.540 回答