我如何确定页面何时存在是因为表单提交?

How can I determine when the page exits is because of form submiting?

这是我的代码:

// confirm alert before close page
window.onbeforeunload = function(evt) {
    var el = document.getElementById("qandatextarea");
    if( el && el.value && !DontAskBeforeExit){
        var message = 'are you sure you want to exit this page?';
        if (typeof evt == 'undefined') {
            evt = window.event;
        }
        if (evt) {
            evt.returnValue = message;
        }

        return message;
    }
}

请关注这一行:

if( el && el.value && !DontAskBeforeExit){

那么有三个条件:

好的,现在我还需要一个条件。我需要检查 "is the page submitting or exiting"?我的意思是,如果用户正在发送 post (提交),我不需要显示弹出警报。我该怎么做?

// set a flag so teh function isn't called twice on the form submit
var formsubmitted = false;

document.getElementById('myform').onsubmit = function(evt){
    formsubmitted = true;
    exitPage(evt, "formsubmit");
};

window.onbeforeunload = function(evt){
    // we don't want this to fire twice when the form is submitted
    if(!formsubmitted) exitPage(evt, "naturalunload");
}

// added an extra parameter , name, and condition to your original function
function exitPage(evt, exitType) {
    var el = document.getElementById("qandatextarea");
    if( el && el.value && !DontAskBeforeExit && exitType=="formsubmit"){
        var message = 'are you sure you want to exit this page?';
        if (typeof evt == 'undefined') {
            evt = window.event;
        }
        if (evt) {
            evt.returnValue = message;
        }

        return message;
    }
}