Avisar se o usuário esqueceu de gravar o formulário
Primeiro, criamos uma variável:
var alguem_mexeu_no_meu_queijo = false;
No evento change de qualquer elemento, alteramos essa variável, para sabermos que o usuário mexeu no formulário:
$('select, input, textarea').change(function(){
alguem_mexeu_no_meu_queijo = true;
});
Depois, no evento beforeunload da janela, precisamos ver se a variável foi alterada.
Se sim, damos o alerta, perguntando se ele quer mesmo sair.
window.onbeforeunload = function(){
if(alguem_mexeu_no_meu_queijo==true)
{
return 'Alguém mexeu no meu queijo.';
}
}
Ah, quando o usuário envia o formulário, precisamos setar a variável como true, para que não apareça o alerta.
Se tu tiver usando o jquery validation, fica assim:
$('#form').validate({
submitHandler: function(form) {
alguem_mexeu_no_meu_queijo = false;
form.submit();
}
});