2009-07-09 19 views
8

Tengo una página con un formulario que se envía a través de ajaxSubmit() (así, sin cambiar la página).Cómo evitar que el usuario cambie la página con jQuery

Mi objetivo es que, cuando el usuario intente cambiar de página (o incluso cerrar el navegador), le pregunto si realmente desea salir de la página sin enviar el formulario (exactamente como lo hace gmail).

Gmail, por ejemplo, hacer esto con una ventana emergente con confirmación, pero si es posible, me gustaría manejarlo con mensajes personalizados y opciones.

jQuery tienen el evento de descarga:

$(window).unload(function() { alert("Bye now!"); }); 

pero me permite simplemente hacer algo antes de salir de la página; Necesito 'bloquear' la salida de la página, si el usuario hace clic en el botón relativo.

Entonces, ¿cómo manejar (y cancelar) el evento de salida de página?

Respuesta

16

intente lo siguiente. Demostración here

<script type="text/javascript"> 

     function unloadPage(){ 
      return "dont leave me this way"; 
     } 

     window.onbeforeunload = unloadPage; 

</script> 
+0

Sí, eso es todo! Lo siento, no puedo personalizar la "alerta", pero no creo que sea un gran problema. – Strae

10

Es posible unen el evento "onbeforeunload" con jQuery:

$(window).bind('beforeunload', function(e) { 
    return "ATTENZIONE!!"; 
}); 

Funciona !!

Cuestiones relacionadas