¡No, no!
La estructura de una validación javascript debe ser así:
<form onsubmit="return validar(this)"...
... y el envío con un botón submit sin más...
<button type="submit">enviar formulario</button>
Luego en la validación:
function validar(f) {
// pasando el formulario como parámetro, se accede a los elementos por su nombre...
vale = f.dato.value != "";
// luego para la cancelación, solo basta con devolver false
// en el ejemplo en la variable vale, si está vacío...
return vale;
}
Si se usa el método submit(), no se enviará nunca si se tiene desactivado javascript desactivado...
Y si quieres hacer una validación buena... también debe hacerse en el servidor.
Saludos