2011-07-08 13 views
7

Para detener el usuario salga de mi página, estoy usando este javascript:Detener el usuario salga de la página web, a excepción de cuando la presentación del modelo

window.onbeforeunload = function() 
{ 
    if($('textarea#usermessage').val() != '') 
    { 
    return "You have started writing a message."; 
    } 
}; 

Esto muestra un mensaje de advertencia al usuario de no salir de la página porque comenzaron a escribir un mensaje pero no se enviaron. Esto aparece para evitar que el usuario pierda estos datos.

Ahora, ¿cómo puedo evitar que este mensaje aparezca cuando se envía el formulario?

Respuesta

5

Establezca un indicador en el controlador de envío de su formulario; verifica si la bandera está configurada en tu controlador de descarga. Si lo es - ¡voila, es un formulario enviado!

+0

Esto fue mucho más simple. Gracias –

9
function handleWindowLeaving(message, form) { 
    $(window).bind('beforeunload', function (event) { 
     return message; 
    }); 
    $(form).bind('submit', function() { 
     $(window).unbind('beforeunload'); 
    }); 
}; 

cuando se llama a esto, pasar sus mensajes y la referencia de la forma, y ​​se eliminará automáticamente onbeforeunload al presentar el formulario. De lo contrario, muestre el mensaje al usuario

+0

¿Qué quiere decir con referencia de formulario? ¿Te refieres a la etiqueta con el nombre? –

+0

me refiero al selector de jQuery para el elemento de formulario deseado. $ ('formulario') por ejemplo – archil

Cuestiones relacionadas