我已经使用Google表单在我的网站上创建了一个表单,通过几个教程,我阻止该页面导航到Google表单感谢页面,而是使用我自己的感谢页面。
这样做的方法是使用隐藏的iframe作为表单上的目标,然后iFrame检查表单是否已成功提交,然后再将窗口切换到我的感谢页面。
<iframe name="hidden_iframe" id="hidden_iframe"
style="display:none;" onload="if(submitted == true)
{window.location='https://www.normadorothy.com/sample-thanks';}">
</iframe>
这样可以正常工作并在显示感谢页面之前提交表单,但是如果用户然后单击后退按钮,表单将再次提交。
我已经尝试console.log(submitted)
返回false,因此不确定为什么要提交两次。
为了清楚起见,表单代码为:
<form id="sample-form" class="validate" action="google-url" method="post" target="hidden_iframe" onsubmit="return validate();">
validate函数检查所有字段,将submitted
设置为true,然后提交表单。
任何帮助都会很棒,我一直用这个把头撞在墙上!
答案 0 :(得分:0)
我猜这种情况正在发生,因为后退按钮会尝试将您带回iFrame的最后一个已知状态(即POST形式的表单),而不是&#34; raw&#34;陈述你期待。您可以尝试在父页面上使用JS编写iFrame来解决此问题:
var iframe = document.createElement('iframe');
iframe.onload = function() { if(submitted == true) {window.location='https://www.normadorothy.com/sample-thanks';}};
iframe.style.display = 'none';
document.body.appendChild(iframe);