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