Hola:
Lo que creo que puede ser es que el foco no lo puede tener todo el formulario sino alguno de los controles que lo admita (no se podría en los "hidden")... si te fijas en la consola de errores (la tienen casi todos los navegadores, seguro que indica que hay error, por lo que se corta el flujo de las instrucciones sin llegar a la cancelación, y por consiguiente el form se envía... debes darle el foco a los controles.
Saludos