Hola:
Te funciona porque el formulario y la validación no es del todo correcto...
Por lo que veo tienes una función submit() dentro de validar().
Me alegro de que te funcione, pero dependes de javascript ya que nunca se enviará el formulario si el cliente tiene javascript desactivado...
Una buena validación debe hacerse en el server también...
... y apúntate la forma de validar que te hemos puesto, porque es la correcta.
Saludos