Skip to main content

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(); 
     } 
});