私はwindow.onbeforeunloadを使用して、ユーザーがフォームの値を変更した後にナビゲートできないようにしています。これは正常に機能していますが、ユーザーがフォームを送信したときに警告が表示されることもあります(望ましくありません)。
フォームの送信時に警告を表示せずにこれを行うにはどうすればよいですか?
現在のコード:
var formHasChanged = false;
$(document).on('change', 'form.confirm-navigation-form input, form.confirm-navigation-form select, form.confirm-navigation-form textarea', function (e) {
formHasChanged = true;
});
$(document).ready(function () {
window.onbeforeunload = function (e) {
if (formHasChanged) {
var message = "You have not saved your changes.", e = e || window.event;
if (e) {
e.returnValue = message;
}
return message;
}
}
});