Hola:
Al ver la línea "form.submit()" supe que no validabas bien, y seguramente uses un botón del tipo "button"...
Las validaciones bien hechas llaman a la función validadora desde el evento submit del formulario... y si esta función devuelve false "no pasa la validación" y se cancela el envío del formulario.
Estructura:
<form onsubmit="return validar(this)"...
...
<button type="submit">enviar</button>
...
</form>
y la función "validar" siempre debe devolver un valor booleano (true/false):
funcion validar(f) {
return (f.dato.value != "");
}
Saludos