Increase speed of performance: reduce excise tasks
Avoid user error: auto correct, input validation, enforce options/entries, enforce flow of execution
Increase retention over time
Increase subjective satisfaction: improve user interaction, allow personalization/customization
Ensure data submitted to the server-side components are acceptable,
and thus increase reliability
Input validation
Client-side
Use HTML features/attributes such as
Use JS — today's focus
Server-side: write logic in the backend component
Prevent/protect (though not 100%) from bypassing the client-side input validation or unauthorized access attempt
see a simple example of bypassing the validation:
sending inappropriate request to Google's search page