JavaScript IsFormDirty{confirm()}被忽略
我觉得这是一个简单的答案,但我有一个JS块,它会在页面加载时加载。屏幕上的确认框popsup是formdirty,但无论我点击ok还是cancel,它都会取消。有什么帮助吗JavaScript IsFormDirty{confirm()}被忽略,javascript,jquery,Javascript,Jquery,我觉得这是一个简单的答案,但我有一个JS块,它会在页面加载时加载。屏幕上的确认框popsup是formdirty,但无论我点击ok还是cancel,它都会取消。有什么帮助吗 window.onunload = function () { if (IsFormDirty) { if (confirm('Discard Unsaved Changes?')==false) { var form = $("div.tab-pane.active").find('form')
window.onunload = function () {
if (IsFormDirty) {
if (confirm('Discard Unsaved Changes?')==false) {
var form = $("div.tab-pane.active").find('form');
form.validate();
if (form.valid()) {
$.post(form.attr('action'), form.serialize(),
function () {
refreshRebatePayments();
}).fail(function (request) {
$('#dialog').html(request.responseText);
$.validator.unobtrusive.parse("#dialog");
});
}
}
}
}谢谢大家。我发现问题是在函数出现之前函数上发生的JS运行时错误。它现在工作正常。旁注:我必须在IE8中工作,所以chrome问题不是问题。再次感谢您的ajax在页面更改之前没有完成,它会被中止。这是async:false为appropriate@KevinB我不认为chrome以任何方式支持它,虽然是的,我不希望确认在所有情况下都起作用。你最好使用onbeforeunload事件。我想更多的浏览器支持您正在寻找的行为,即使是这样,也没有可靠的跨浏览器方式来做到这一点,当然,正如Keving所建议的那样,使用async false。谢谢大家。我发现问题是在函数出现之前函数上发生的JS运行时错误。它现在工作正常。旁注:我必须在IE8中工作,所以chrome问题不是问题。再次感谢