必需的字段验证在动态操作 Apex 隐藏的字段上触发

问题描述 投票:0回答:1

我有一个应用程序,其中我根据用户输入和动态操作隐藏了一些字段(日期选择器)。其中一些字段被标记为“必填字段”(显然,如果它们没有被动态操作隐藏),并且在提交时触发关联的验证。

如果字段被动态操作隐藏,如何覆盖正在触发的验证?

oracle-apex
1个回答
0
投票

验证只是页面项值的服务器端规则。当提交 apex 页面时,服务器端进程(验证/计算/进程和分支)不知道页面呈现后影响 DOM 的任何操作。因此服务器不知道页面项目是隐藏、显示还是禁用。

这绝对不是一个错误,原因如下:显示/隐藏动态操作只是一个 jquery 调用。因此,任何具有基本 JavaScript 知识的用户都可以从浏览器开发控制台隐藏页面上的项目。它甚至是记录的:)如果验证不会在隐藏的项目上触发,那将是一个安全风险。

正如评论中提到的,解决方案是在验证中添加一个条件,以便不使用与动态操作类似的逻辑触发。这样,如果有人通过浏览器开发控制台通过 javascript 隐藏该项目,验证仍然会按预期触发。当 DA 隐藏该项目时,它不会。

© www.soinside.com 2019 - 2024. All rights reserved.