我有这个问题,我似乎无法解决..
我有一张表格可以将数据提交到谷歌表。
<form action="https://docs.google.com/sheeturl" method="post" target="hidden_iframe1">
效果非常好(但是将用户重定向到Google表单感谢页面)。
我试图阻止此行为(我想在我自己的域上加载感谢页面)并添加以下onsubmit事件
onsubmit="window.location.href = 'http://thankyoupage.html';"
它本身不会改变任何东西。所以我添加了
return false;
现在重定向工作正常(加载我的感谢页面),但表单数据没有提交到工作表。
我很确定这是一个平庸而简单的解决方案,但我只是缺乏解决它的知识。 感谢。
答案 0 :(得分:0)
通过设置返回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");
}
}
});
});