A diferencia de las otras respuestas, volver false
sólo es parte de la respuesta. En cuenta la situación en la que se produce un error de JS antes de la sentencia de retorno ...
html
<form onsubmit="return mySubmitFunction()">
...
</form>
guión
function mySubmitFunction()
{
someBug()
return false;
}
regresar false
aquí no será ejecutado y el formulario será enviado de cualquier manera. También debe llamar al preventDefault
para evitar la acción de formulario predeterminada para los envíos de formularios Ajax.
function mySubmitFunction(evt) {
evt.preventDefault();
someBug();
return false;
}
En este caso, incluso con el error de la forma no se someterá!
Alternativamente, podría usarse un bloque try...catch
.
function mySubmit(evt) {
evt.preventDefault();
try {
someBug();
} catch (e) {
throw new Error(e.message);
}
return false;
}
Aún puede acceder al botón Enviar. Renderice la página y tome su ClientID mirando el origen de la página. Luego, usando algo como jQuery, podrías hacer algo como $ ('# ctl01_cph01_controlBtn1'). Haz clic en (función() {return falso;}); – rebelliard
@Rafael: Es cierto ... pero ese sería un último recurso: este es un control muy complejo. –
@Raf que está basado en asp.net, y tampoco es una mejor práctica. Pero es esencialmente correcto. Simplemente evitaría echar un vistazo a la fuente y usar el nombre del control, ya que puede cambiar si alguien edita la página. Efectos secundarios no deseados y tal. – Will