我的项目在 3 个不同的页面中有 3 个表单,例如 form1.cfm、form2.cfm、form3.cfm。
form1.cfm 包含第一个表单,如下
<form name="firstform" method="post" action="form2.cfm">
// form-content
</form>
<a href="javascript:void(0);"onclick="javascript:document.firstform.submit();">Next</a>
form2.cfm(第一个表单的操作页面)包含第二个表单,如下
<form name="secondform" method="post" action="form3.cfm">
// form-content
</form>
<a href="javascript:void(0);"onclick="javascript:window.history.back();">Back</a>
<a href="javascript:void(0);"onclick="javascript:document.secondform.submit();">Next</a>
form3.cfm(第二个表单的操作页面)包含第三个表单如下
<form name="Thirdform" method="post" action="form4.cfm">
// form-content
</form>
<a href="javascript:void(0);"onclick="javascript:window.history.back();">Back</a>
<a href="javascript:void(0);"onclick="javascript:document.Thirdform.submit();">Next</a>
因此,当我在 form2.cfm 中使用“后退”按钮链接时,它会转到 form1.cfm 并且没有任何问题。当我在 form3.cfm 中执行相同操作时,它必须转到 form2.cfm,但它要求用于表单重新提交,因为我知道这是form1.cfm的操作页面。
当我使用 form3.cfm 中的后退按钮链接并且不想看到表单重新提交页面时,我想要使用 form2.cfm。
不知道能不能修复。但欢迎提出建议或解决方案。
提前致谢
最佳答案
问题是,通过使用 POST,您是在告诉浏览器“嘿,此表单具有可能不适合重复的效果。”
您可以将方法更改为 GET,但这可能也不合适,因为这表示“此表单没有任何效果,它只是为了显示内容。”
一种解决方案是根本不提交表单,而是使用 JavaScript 收集数据,使用 XHR 请求发送数据,然后再次使用 JavaScript 导航到下一个表单。
另一个解决方案是根本不使用多个单独的表单。只需将它们全部放在一个主表单中即可。如果变得很大,只需使用 JavaScript 隐藏不活动的部分,并使用下一个/后退按钮打开和关闭这些部分。
关于javascript - 表单操作期间后退按钮问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268060/