Javascript onunload-检查表单是否已提交

Javascript onunload-检查表单是否已提交,javascript,forms,form-submit,Javascript,Forms,Form Submit,我在网页上有一个表单。当用户从该页面移动时,我想检查表单是否已提交。如果是,则用户只需继续下一页,如果不是,则用户会收到一条警报消息,并返回表单所在的原始页面 我不太熟悉javascript,所以如果可能的话,我会很感激一些代码片段 你的问题有点含糊。您的问题暗示您正在异步提交表单,但您说您不熟悉JavaScript。异步提交表单需要JS知识。此外,如果您实际上是同步提交表单,那么解决方案将过于明显(只需在服务器端有条件地呈现一些JS) 如果您实际上是异步提交表单,那么在成功提交表单后,只需将一

我在网页上有一个表单。当用户从该页面移动时,我想检查表单是否已提交。如果是,则用户只需继续下一页,如果不是,则用户会收到一条警报消息,并返回表单所在的原始页面

我不太熟悉javascript,所以如果可能的话,我会很感激一些代码片段


你的问题有点含糊。您的问题暗示您正在异步提交表单,但您说您不熟悉JavaScript。异步提交表单需要JS知识。此外,如果您实际上是同步提交表单,那么解决方案将过于明显(只需在服务器端有条件地呈现一些JS)

如果您实际上是异步提交表单,那么在成功提交表单后,只需将一些令牌/切换设置为表单的
data xxx
属性。例如

function submit(form) {
    // Do your thing to submit it.

    // And then on succes:
    form['data-submitted'] = true;
    return false;
}
然后,在卸载之前的
事件中,您只需检查令牌/切换是否存在,如果缺少,则相应地返回消息

window.onbeforeunload = function() {
    for (var i = 0; i < document.forms.length; i++) {
        var form = document.forms[i];
        if (form['data-submitted'] != 'undefined' && !form['data-submitted']) {
            return "There is unsaved data!";
        }
    }
}

你的问题有点含糊。您的问题暗示您正在异步提交表单,但您说您不熟悉JavaScript。异步提交表单需要JS知识。此外,如果您实际上是同步提交表单,那么解决方案将过于明显(只需在服务器端有条件地呈现一些JS)

如果您实际上是异步提交表单,那么在成功提交表单后,只需将一些令牌/切换设置为表单的
data xxx
属性。例如

function submit(form) {
    // Do your thing to submit it.

    // And then on succes:
    form['data-submitted'] = true;
    return false;
}
然后,在卸载之前的
事件中,您只需检查令牌/切换是否存在,如果缺少,则相应地返回消息

window.onbeforeunload = function() {
    for (var i = 0; i < document.forms.length; i++) {
        var form = document.forms[i];
        if (form['data-submitted'] != 'undefined' && !form['data-submitted']) {
            return "There is unsaved data!";
        }
    }
}

嗨,谢谢你的回答。实际上表单是同步提交的。所以我想检查“beforeunload”函数,确认表单确实已经提交。如果已经提交,则什么也不会发生,如果没有,则将用户带回表单。我希望这是清楚的?gf不可能强迫他们保持在同一页上。但是,也可以显示一条消息,询问他们是否希望停留在同一页面上,然后关注表单。您好,谢谢您的回答。实际上表单是同步提交的。所以我想检查“beforeunload”函数,确认表单确实已经提交。如果已经提交,则什么也不会发生,如果没有,则将用户带回表单。我希望这是清楚的?gf不可能强迫他们保持在同一页上。但是,也可以显示一条消息,询问他们是否希望停留在同一页面上,然后关注表单。