gabriel Thank you gabriel for response. of course it is a good idea to validate each field on change but some times, values that are valid naturally for a field, is not valid when combined with other fields(in same or other relation).
let me bring a naive example:
Suppose we have two relations or tables, one of which holds personal information and the other holds the types of actions that a human being can do naturally, such as running, talking, eating and giving birth to a child, swimming, etc.
Now let's assume that we receive this information from the user at the same time in a form. Each of the fields related to a person, such as national ID, etc., or related to various types of actions, can be validated alone (for example, flying is not valid for humans naturally), but in combination, actions such as giving birth to babies are not valid for all people. (A man cannot give birth naturally)
problem with postponing validating of all fields to triggers is that each trigger works for one relation (table) and it may cause to our validation logic scattered between multiple trigger (for multiple relation). in forms usually all needed fields of relation presented together and we have access to all of them in one place.
In summary, I think having an event before saving the data can be very useful for handling additional operations.
For example, in common web forms, in addition to the onchange event for each field, there is also an onsubmit event to handle other operations before sending information to the server.