【问题标题】:Change error system message in oracle apex在 oracle apex 中更改错误系统消息
【发布时间】:2020-03-02 19:59:16
【问题描述】:

我有一个表单页面,当按下保存时,所有字段都是必需的,出现以下消息

如何将此消息更改为自定义消息“请填写所有必填字段”,以及如何在输入值时清除错误(当值更改为非空时)。

【问题讨论】:

    标签: oracle oracle-apex


    【解决方案1】:

    我现在看不到图片。

    但是,一种选择可能是创建您自己的返回错误文本的验证。类似的东西

    if :P1_NAME is null then
       return ('Name must be entered');
    end if;
    

    提交页面后,消息会自动清除,不会留下任何错误。

    【讨论】:

    • 好的,但我需要更改弹出系统消息,并在填写字段“当更改且项目不为空”时清除错误
    【解决方案2】:

    我不确定您是否可以更改系统消息,但如果任何项目发生更改,您可以使用 javascript 添加自定义错误消息。

    为运行 javascript 的项目添加更改事件并使用以下代码:

    var item = apex.item('P1_ITEM').getValue();
    
    if(item == null) {
      //First clear the errors
      apex.message.clearErrors();
    
      // Now show new errors
      apex.message.showErrors([
        {
            type:       "error",
            location:   [ "page", "inline" ],
            pageItem:   "P1_ITEM",
            message:    "Name is required!",
            unsafe:     false
        },
        {
            type:       "error",
            location:   "page",
            message:    "Page error has occurred!",
            unsafe:     false
        }
      ]);
    }
    

    但是,这不会阻止用户提交,它只是让你更好地显示消息,所以你必须在提交后添加相应的验证。

    如果您想从所需项目中删除系统错误消息,您可以禁用项目上的Value Required 选项并添加自定义验证,正如他们在其他响应中告诉您的那样。

    如果您想更好地探索所有 apex.message 选项,我推荐此文档:

    https://docs.oracle.com/database/apex-5.1/AEAPI/apex-message-namespace.htm#AEAPI-GUID-D15040D1-6B1A-4267-8DF7-B645ED1FDA46

    apex.item 的更多文档:

    https://docs.oracle.com/cd/E71588_01/AEAPI/apex-item.htm#AEAPI29448

    【讨论】:

    • 感谢您的支持,是否可以删除值更改时出现在项目下方的错误消息 apex.message.clearerrors 删除所有错误是屏幕如何我只能删除特定错误
    • 根据文档,没有办法删除一条消息,只能删除所有内容并重新添加所有需要的消息。
    【解决方案3】:

    有一些方法可以做这些事情。 首先,您可以进行自定义验证,这些都很棒,如果可能的话,您应该真正尝试使用它们。

    然后在保存过程中也有错误消息,但这只是在过程失败时引发自定义消息,所以我从不使用它。

    您似乎看到的是您收到了一条错误消息并且没有更改与该错误相关的字段。

    如果保存过程是自定义的,您还可以在 END 之前放置一个 EXCEPTION 块,并在此处捕获错误并抛出自定义错误和自定义错误消息。

    我真正喜欢的另一件事是实际重命名一些常见错误,这样我就不必单独捕获它们。假设客户端可能经常尝试保存相同的数据,从而破坏 PK。 Oracle 会抛出一个错误,但该消息对开发人员有好处,但对于我一直认为是一个几乎不会阅读并且会为所有事情哭泣的 3 岁孩子的客户来说不太容易理解。所以我做了一个错误处理函数,将它添加到 apex,所以当错误发生时,它会抛出一个很好的消息,通知客户端他们试图添加一些已经存在的数据。 所以,一个与 APEX 相关的错误处理函数,用来重命名一些正常的错误。

    祝你好运

    【讨论】:

    • 感谢您的支持,是否可以删除值更改时出现在项目下方的错误消息 apex.message.clearerrors 删除所有错误是屏幕如何我只能删除特定错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多