Joomla has client-side and server-side form validation capabilities.
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