Alerta ao sair da página com formulário não salvo

A tarefa é mostrar uma mensagem de alerta como “Tem certeza que deseja sair desta página” quando o usuário alterou alguns dados no formulário, mas não os enviou.

Aqui está uma maneira rápida e suja de fazer isso com jQuery:

$(document).ready(function(){
var form = $('#some-form'),
original
= form.serialize()

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

window
.onbeforeunload = function(){
if (form.serialize() != original)
return 'Are you sure you want to leave?'
}
})