表单onsubmit重定向导致表单未提交
form onsubmit redirect causing the form not being submitted
我有这个问题,我似乎无法解决。。
我有一个表格,可以将数据提交到谷歌表单中。
<form action="https://docs.google.com/sheeturl" method="post" target="hidden_iframe1">
它运行得非常好(但会将用户重定向到谷歌表单感谢页面)。
我试图阻止这种行为(我想在自己的域上加载一个感谢页面),并添加了以下onsubmit事件
onsubmit="window.location.href = 'http://thankyoupage.html';"
这本身不会改变任何事情。所以我添加了
return false;
现在重定向工作正常(加载我的感谢页面),但是表单数据没有提交到表单中。
我很确定有一个平庸而简单的解决方案,但我只是缺乏解决它的知识。谢谢
通过设置return false,你基本上是在劫持表单的功能——它根本不会像那样发布到谷歌上。请尝试使用AJAX
提交表单。使用jQuery可以这样做:
$("#ajaxForm").submit(function (e) {
e.preventDefault();
$.ajax({
url: "https://docs.google.com/forms/d/FORMKEY/formResponse",
beforeSend: function (xhr) {
xhr.setRequestHeader('Access-Control-Allow-Origin', 'chrome-extension://EXTENSION_ID');
xhr.setRequestHeader('Access-Control-Allow-Methods', 'GET, POST, PUT');
},
data: JSON.stringify($(this).serializeArray()),
type: "POST",
dataType: "xml",
xhrFields: {
withCredentials: true
},
statusCode: {
0: function () {
document.getElementById("message").innerHTML = "Your form has been submitted!";
window.location.replace("http://thankyoupage.html");
},
200: function () {
document.getElementById("message").innerHTML = "Your form has been submitted!";
console.log("Success");
window.location.replace("ThankYou.html");
}
}
});
});
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- JavaScript表单提交帮助
- PHP表单提交和重定向
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- setTimeOut AFTER jQuery表单提交
- 从函数中选择要触发表单提交的正确元素
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- 表单提交问题,如何在我的URL末尾获得ID的值
- Javascript使用Confirm取消表单提交