我正在尝试将表单提交到新窗口并重定向当前窗口,但它无效。 我的代码是:
function submit() {
document.checkout_confirmation.submit();
setTimeout(window.location = 'http://google.nl', 1000);
}
当我执行此代码时,它只重定向页面而不提交from。我这样做错了还是这个不可能? 随意询问我的问题是否缺少任何细节 提前致谢
答案 0 :(得分:3)
正确的做法是让服务器在成功提交后重定向用户。如果表单中的某些内容无效,该怎么办?在这种情况下,您不希望重定向,并且您不能只信任您的JavaScript代码进行验证(因为它可以被禁用)。请参阅Post/Redirect/Get。
此外,您正在错误地使用setTimeout,而不是当您已经通过submit()将浏览器发送到其他位置时,它可能会起作用(总是有可能您的表单仅触发其他“提交”侦听器并通过我认为是Ajax)。它应该是这样的:
setTimeout(function() {
window.location = 'http://google.nl/';
}, 1000);