validar validacion pattern nombre formulario evitar enviar doble antes javascript jquery ajax onbeforeunload

javascript - validacion - ¿Cómo deshabilitar la acción de descarga previa cuando el usuario envía un formulario?



validar formulario jquery (5)

Tengo este pequeño código:

<script> $(window).bind(''beforeunload'', function() { $.ajax({ async: false, type: ''POST'', url: ''/something'' }); }); </script>

Me pregunto, ¿cómo podría deshabilitar esta solicitud cuando el usuario presione el botón de enviar.

Básicamente algo así como aquí, en SO. Cuando haces una pregunta y decides cerrar la página, obtienes una ventana de advertencia, pero eso no ocurre cuando envías el formulario.


Buscando detectar onbeforeunload para la aplicación web ASP.NET, así era, tengo que mostrar un mensaje de advertencia si algún control de entrada cambia en la página usando ASP.NET con páginas maestras y páginas de contenido. Estoy usando 3 marcadores de posición de contenido en la página maestra y el último es después del formulario

<form runat="server" id="myForm">

así que después de la etiqueta de cierre del formulario y antes de la etiqueta de cierre del cuerpo se utilizó este script

<script> var warnMessage = "Save your unsaved changes before leaving this page!"; $("input").change(function () { window.onbeforeunload = function () { return ''You have unsaved changes on this page!''; } }); $("select").change(function () { window.onbeforeunload = function () { return ''You have unsaved changes on this page!''; } }); $(function () { $(''button[type=submit]'').click(function (e) { window.onbeforeunload = null; }); }); </script>

beforeunload no funciona de manera confiable de esta manera, en lo que respecta a la vinculación. Debes asignarlo de forma nativa

así que lo hice funcionar como este enlace y desvinculación no funcionó para mí también Con jQuery 1.7 en adelante, la API del evento se ha actualizado, .bind () /. unbind () todavía están disponibles para compatibilidad con versiones anteriores, pero el método preferido es usando las funciones de encendido () / apagado ().


Esto es lo que usamos:

En el documento listo, llamamos a la función de carga previa.

$(document).ready(function(){ $(window).bind("beforeunload", function(){ return(false); }); });

Antes de cualquier envío o ubicación. Cargamos desvinculamos la variable.

$(window).unbind(''beforeunload''); formXXX.submit(); $(window).unbind("beforeunload"); location.reload(true);


Utilizar

$(''form'').submit(function () { window.onbeforeunload = null; });

¡Asegúrate de tener esto antes de la función principal de envío! (Si alguna)


beforeunload llamadas utilizando el controlador de eventos beforeunload :

$(''form#someForm'').submit(function() { $(window).unbind(''beforeunload''); });

Para evitar que se envíe el formulario, agregue la siguiente línea:

return false;


<!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script type="text/javascript" src="http://cdn.jsdelivr.net/jquery.dirtyforms/2.0.0-beta00006/jquery.dirtyforms.min.js"></script> <script type="text/javascript"> $(function() { $(''#form_verify'').dirtyForms(); }) </script> <title></title> <body> <form id="form_verify" action="a.php" method="POST"> Firt Name <input type="text"> Last Name <input type="file"> <input type="submit"> </form>