Hola:
En el primer mensaje pusiste bien la validación pero en el sitio incorrecto... no debes olvidarte del return sino no sirve de nada, y sobre las variables globales o no, la forma de validar siempre recomiendo que sea de esta forma:
<form onsubmit="return validar(this)"...
Los detalles a considerar son: aparte de ponerlo en el tag form, no olvidarse del return antes de la función validadora, y fíjate en el this como parámetro, con ese detalle, en la validación referencias el formulario, y basta con poner detrás un punto, seguido del nombre de los campos para referenciarlos:
Ejemplo:
function validar(f) {
return f.campo.value != "";
}
No puse tu formulario porque solo quiero aclarar como debe validarse (al menos la forma que yo recomiendo)
Saludos