Вам нужно выполнить проверку внутри обработчика, например:
window.onbeforeunload = function(){
if(!$buttonpressed){
return "Your changes may not be saved.";
}
}
В настоящее время это привязка window.onbeforeunload
, когда ваш код выполняется, потому что $buttonpressed
равен false
когда он запускается ... не имеет значения, если он изменится позже, так как вы уже связали обработчик.Альтернатива состоит в том, чтобы сделать это немного проще, например:
window.onbeforeunload = function(){
return "Your changes may not be saved.";
}
$j(".Actions input").click(function(){
window.onbeforeunload = null;
});
Это просто удаляет обработчик вместо click
.Более подходящим событием для обработки других случаев отправки было бы присоединение к событию submit
, например:
$j(".myForm").submit(function(){
window.onbeforeunload = null;
});