Joomla has client-side and server-side form validation capabilities.
Server side validation is the minimum since everything before that can be overridden on the user side.
It uses the HTML classes required and validate-[xxx] (with [xxx] being a joomla or custom rule; e.g. validate-numeric)
.. is done after having submitted the form and will normally return to the form when not validated with some extra messages.
It used the HTML attributes required ("true" or "required") and validate (with value being a joomla or custom rule; e.g. validate="email")
More here: Server-side form validation