I'm working on a desktop application that has text fields and other form elements scattered on various pages. A global save button saves all inputs from all pages. Since the textfield format/error validation is global and I don't have the option the validate on save I have to make sure that the input is correct when the user clicks "save".
Now I was wondering what the ideal textfield validation would be in terms of user experience and data integrity.
It comes down to 4 options:
Error persistence: just save the values as they come to the database.
- -> At some point the errors would have to be corrected by the user. I would prefer this option. Problem is, this isn't supported by my data model and would mean high implementation effort.
Auto-Correct: E.g. Show error feedback but delete invalid characters automatically after the focus ist lost.
- -> The auto-corrected value is not necessarily correct. The user might not notice both the error notification and auto correction and a false value is saved.
Ignore invalid characters: Ignore keystrokes of invalid characters but show a baloon notification with a hint that the character is not allowed.
- -> Again, the user might not notice the baloon or the altered value while typing (not looking at the screen maybe) and a false value is saved.
Delete invalid input: Show error feedback, but delete the input after the focus is lost.
- -> This forces the user to re-enter the data from the start. Not very elegant, especially not for longer values.