RE:Se puede cancelar el submit?
Si que se puede.
En el tag form pon el evento onSubmit para llamar a la funcion javascript que validadara los datos. Haz que esta funcion devuelva un booleano. Si envias true, el formulario se enviara, si envias false no.
Ejemplo:
<script>
function Validar()
{
if (TodoCorrecto) return true;
else return false;
}
</script>
<form id="formulario" action="mipagina.xxx" method="post" onsubmit="javascript: return Validar();">
Tambien puedes hacerlo de otra manera. Sustituye el boton submit que tengas por button y a ese button le añades el evento onclick para que valla a la funcion.
Ejemplo
<input type="button" value="Aceptar" onclick="javascript: Validar();">
la diferencia es que en este no hace falta que la funcion validar devuelva nada. ya que en realidad nunca se ha dado la orden de enviar el formulario.
la funcion Validar en este caso quedaria asi:
function Validar()
{
if (TodoCorrecto)
document.forms.formulario.submit(); formulario //para enviar el form.
}
Saludos,
Jose.