Hola:
Te falta algo fundamental:
onsubmit="
return validar()"
...
![Porras](http://static.forosdelweb.com/fdwtheme/images/smilies/porra.gif)
...
Y casi se me pasa, que formulario por sí solo no vale:
debe ser precedido por document, o un poco mejor aún document.forms... siempre que solo haya uno... ¡ah!, otra alternativa: document.getElementById("formulario").
O sea que salta la validación por un error.
Saludos