In fact, quite a few of my posts spawn from forum activity, in part because future me can find my posts easier than forum discussions.
I wanted to share a collection of solutions for customising the notification message when a field is Required - turns out we have a few options.
Then I found myself playing with the Compatibility Mode - a feature that allows you to nominate specific application to behave as if they were on a particular APEX version.
This setting only relevant for specific, esoteric behaviours, but while I was playing with validation messages, I thought it would be worth including how things are different.
Application Attribute - Compatibility Mode |
If I open Application properties, and set the Compatibility Mode to 5.0, then validations aren't tested until the page submits.
APEX 5.0 behaviour |
This also demonstrates that if you use Shared Components => Text Messages, and translate one of the documented internal error messages, then you will see this translation in applications behaving has per APEX 5.0.
Application wide message translation |
The translation also over-rides the
data-valid-message
custom attribute, as John Snyders suggests that's not coupled with translations.data-valid-message="Customise me"
Message hack |
The current (default) behaviour, appearing from 5.1, offers client side validations.
In this case we receive immediate feedback regarding the fields that are declaratively set to Required.
If I have a
data-valid-message
, it uses that.Feedback before page submit |
Note the translation haven't been applied, and a custom server-side validation hasn't yet applied.
If the first three fields have been satisfied, then the form will submit, and we can see any custom server-side validations.
Feedback after page submit |
This means we can customise the message by creating our own server-side validation message - something we used to have to do before things got nice and declarative.
Server-side validation |
So there are a some pros/cons for either of these solutions to customise validation messages, and it would depend on your APEX version. I wouldn't be surprised if this behaviour is further cleaned up over time.
See more
Basic demoJohn Snyders - deep dive
Matt Mulvaney - other considerations
Nick Buytaert - the old way
Patrick Wolf - the really old way
Compatibility Mode - 19.1 Release Notes
There used to be a great article regarding compatibility mode in the German community, possibly by Carsten, but I don't think it's available anymore.
No comments:
Post a Comment