Skip to main content

Requirements

The table below describes the requirements that were used to define the plug-in scope. The Native APEX validation and Client-Side Validation Pro columns compare the requirement against native validation provided by Oracle APEX and the capability to fulfill the requirement by the plug-in.

RequirementDescriptionNative APEX ValidationClient-Side Validation Pro
1The plug-in should execute validations on the client-side without an AJAX call.Usually, client-side validation is done by writing custom javascript functions to validate. The plug-in should execute native Oracle APEX validations without any extra effort from a developer.

Purpose: Execute defined APEX validations on the client-side using JavaScript without defining any JavaScript code.
(error)

Oracle APEX validations are always executed on the server-side.
(tick)

The plug-in can evaluate natively defined validations using JavaScript based on APEX validation definitions.
2The plug-in should allow evaluating validation conditions on the client-side without an AJAX call.Usually, client-side validation is done by writing custom javascript functions to validate. The plug-in should evaluate native Oracle APEX validation conditions without any extra effort from a developer.

Purpose: Evaluate defined APEX validations on the client-side (using JavaScript) condition before executing a validation.
(error)

Oracle APEX validations are always executed on the server-side.
(tick)

The plug-in evaluates natively defined validation conditions using JavaScript based on APEX validation definitions.
3The plug-in should be able to execute interactive grid column validations.Purpose: Support interactive grid column validation.(tick)

Native feature
(tick)

The plug-in supports validating interactive grid columns.
4The plug-in should execute all validations server-side using an AJAX call.The end-user can turn off the JavaScript in their browser settings which is the reason that all validations that can be executed on the client-side should be rechecked on the server-side.

Purpose: Prevent end-users from disabling validation using JavaScript.
(tick)

Oracle APEX validations are always executed on the server-side.
(tick)

The plug-in always evaluates defined validations on the server-side.
5The plug-in should be able to execute items validations on an event triggered on the specified region.Purpose: Reduce the effort required to validate all items in the specified region. Instead of specifying item(s) specify the region.(error)

Oracle APEX validation can be restricted to a given request (When Button Pressed) which is associated with an APEX button.
(tick)

When the plug-in affected elements are set to Region, the plug-in will validate all items embedded in the specified region.
6The plug-in should be able to validate a given item(s).Purpose: Give the possibility to specify which items should be validated using the plug-in.(error)

Oracle APEX validation can be restricted to a given request (When Button Pressed) which is associated with an APEX button.
(tick)

When the plug-in affected elements are set to Item(s), the plug-in will validate all specified items in one execution.
7The plug-in should be able to execute items validations on a custom event triggered on the document (DOM tree node)Purpose: Give the possibility to bind the plug-in validation from global page 0.(error)

Native Oracle APEX validation can be performed only after the page is submitted.
(tick)

The plug-in supports triggering elements defined as a JavaScript Expression.
8The plug-in should be able to execute column validations (for currently edited row) on an event triggered by an interactive grid.Purpose: Reduce the amount of effort required to bind the plug-in with all interactive grid columns.(error)

Native Oracle APEX validation is done after the interactive grid save action is triggered.
(tick)

The plug-in supports triggering elements defined as Region (interactive grid).
9The plug-in should be able to execute columns validations (for currently edited row) on an event triggered by an interactive grid column.Purpose: Give more control to a developer as to which columns are validated under the specified conditions.(error)

Native Oracle APEX validation is done after the interactive grid save action is triggered.
(tick)

The plug-in supports triggering elements defined as Column(s).
10The plug-in should execute validations in a defined sequence order.Purpose: Mimic the native validation process.(tick)

Native Oracle APEX validation is done in order of validation sequence.
(tick)

The plug-in executes validation in the defined validation sequence.
11The plug-in should expose validation events.Purpose: Allow developers to control and enhance the validation process. Using the plug-in events it is possible to visualize the validation process, validation results, and build custom validation flows.(error)

Native Oracle APEX validation doesn’t trigger events. When validation is successful the page is reloaded. When validation fails the page is not reloaded and validation errors are shown.
(tick)

The plug-in fires different events at each validation step.
12The plug-in should allow executing validation after a button is clicked.Purpose: Mimic native validation behavior.(tick)

Native Oracle APEX validation is always performed after the button submitting the page is clicked.
(tick)

The plug-in validation can be triggered on a button click event which can be combined with the plug-in attributes to create more user-friendly validation.
13The plug-in should allow item/column validation on the item/column event.Purpose: Get validation results right after the user inputs data into the item/column.(error)

Native Oracle APEX validation can be performed only after the page is submitted.
(tick)

The plug-in validation can be triggered on the item/column events supported by Oracle APEX dynamic actions. For example Change, Key release, and so on.
14The plug-in should render validation errors using the Oracle APEX JavaScript API.Purpose: Mimic native validation behavior.(tick)

Native Oracle APEX validation renders validation results using the apex.message API.
(tick)

Validation errors are shown using the Oracle APEX apex.message API.
15The plug-in should display validation errors in positions supported by APEX.Validation errors can be shown in 4 different positions.

Purpose: Mimic native validation behavior.
(tick)

Native Oracle APEX validation behavior
(tick)

The plug-in supports 3 positions excluding the On Error Page position.
16The plug-in should allow an overriding validation error display location.Purpose: Give the possibility to show validation errors in different positions depending on triggering events. For example, show validation errors inline with the field when the triggering event is set to Change and show validation errors Inline with Field and Notifications when the specified button is clicked.(error)

Native Oracle APEX validation result positions cannot be changed at run-time.
(tick)

The plug-in allows overriding the validation position from the perspective of dynamic action implementation. Even though the APEX validation result position is defined to be shown in a particular position, the plug-in can override it.
17The plug-in should support HTML5 validations.The native Oracle APEX validation process includes HTML5 validations.

Purpose: Mimic native validation behavior.
(tick)

Native feature
(tick)

The plug-in mimics the native approach and HTML5 validations are evaluated.
18The plug-in should support translations for HTML5 validations.HTML5 validation messages are based on end-user browser preferences, which means support the language currently selected by end-user.

Purpose: Make translating HTML5 validations easy and maintainable.
(error)

Native Oracle APEX HTML5 validations can’t be translated using the native approach.
(tick)

The plug-in supports HTML5 validation translations using native APEX text messages.
19The plug-in should support translations for native validationsValidations are translated using the built-in Globalization feature.

Purpose: Mimic the native feature.
(tick)

Oracle APEX validations are translated using a Shadow Application.
(tick)

The plug-in supports a Shadow Application.
20The plug-in should evaluate the validation authorization scheme before execution.The Oracle APEX validation process includes evaluation of the authorization scheme assigned to the validation.

Purpose: Mimic the native feature.
(tick)

Native feature
(tick)

The plug-in mimics the native validation process and evaluates authorization schemes before executing a validation.
21The plug-in should evaluate the validation conditions before executing the validation.Oracle APEX validation process includes the evaluation of defined validation conditions.

Purpose: Mimic the native validation behavior.
(tick)

Native feature
(tick)

The plug-in mimics the native validation process and evaluates validation conditions before executing a validation.
22The plug-in should be able to execute validations with the When Button Pressed attribute defined.Purpose: Mimic the native validation behavior.(tick)

Native feature
(tick)

The plug-in evaluates validations that have the When Button Pressed attribute set using the plug-in Request attribute.
23The plug-in should support the debounce mechanism for events such as Key Down, Key Release, and Key Press for APEX items.The plug-in debounce mechanism can be applied to APEX items. It is planned to support interactive grid columns in the future.

Purpose: Prevent duplicated validations for keyboard events.
(error)

Native Oracle APEX evaluates validations only after a page is submitted.
(tick)

Plug-in feature
24The plug-in should expose configurable callbacks on validation results.Purpose: Allow the possibility to create application flow based on validation results.(error)

Native feature
(tick)

The plug-in allows creating JavaScript callbacks on validation results.
25The plug-in should allow its execution to be debugged.The plug-in validation process can be inspected using the Oracle APEX debug feature.

Purpose: Mimic the native validation debug.
(tick)

Native Oracle APEX validation can be inspected in debug mode.
(tick)

The plug-in supports debug mode and logs the plug-in validation process.
26The plug-in should combine HTML5, client-side, and server-side validation togetherAll validations combined together.(error)

Native Oracle APEX doesn’t support evaluating defined APEX validation on the client-side
(tick)

Plug-in feature
27The plug-in should allow validations to be specified as Server-side only.Purpose: Give a developer control as to whether defined validations should be executed on the client-side.(error)

Native Oracle APEX validation doesn’t support executing some validation on the client-side.
(tick)

Plug-in feature
28Preserve ErrorsThe plug-in validation can be implemented in separate dynamic actions under different conditions (triggering event, a different set of items). Each implementation can result in a different errors and the plug-in can make a summary of these results.

Purpose: Give a developer the control to decide whether currently executed validations should include errors from other implementations of the plug-in.
(error)

Native Oracle APEX validation is executed once on page submit and doesn’t need such a feature.
(tick)

Plug-in feature
29Wait for resultsDevelopers can define whether true actions following plug-in validation should be executed immediately after the validation or if they should wait for validation results.

Purpose: Give a developer control over dynamic action flow.
(error)

Native Oracle APEX validation is executed once on page submit and doesn’t need such a feature
(tick)

Plug-in feature