是否可以延迟在网页上调用卸载方法的时刻? 我有N页,每页都包含一个表格。我不希望用户点击提交按钮,所以我通过javascript模拟了隐藏提交按钮的点击。每次用户更改页面时都会激活此选项:
window.onbeforeunload = function() {
document.getElementById('submit_id').click();
}
这不起作用,但如果我在.click()
之后发出警报window.onbeforeunload = function() {
document.getElementById('submit_id').click();
alert("submitting form");
}
一切都像魅力一样。这是因为警报为表单提供了实际提交数据的时间;没有提醒页面在提交表单之前卸载页面,因此不会保存更改。
我试图在.click()
之后放置一个虚拟的setTimeoutwindow.onbeforeunload = function() {
document.getElementById('submit_id').click();
setTimeout(console.log("dummy"), 200);
}
但它不起作用。对此有任何帮助或反馈将不胜感激。
答案 0 :(得分:0)
如果你使用jquery,你可以尝试通过ajax保存。并且可能会将async添加到false,而不是推荐,但如果保存功能非常快,则可以在您的示例中使用。
http://api.jquery.com/jQuery.ajax/
这是我如何保存:
var $form = $('#formId');
$.ajax({
type: "POST",
url: $form.attr('action'),
data: $form.serialize(),
error: function (xhr, status, error) {
// error
},
success: function (response) {
// sucess
}
});