我的项目在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中的Back按钮链接时,它会转到form1.cfm并且没有任何问题。当我在form3.cfm中执行相同操作时,它必须转到form2.cfm,但它要求表单重新提交,因为我知道它是form1.cfm的操作页面。
当我使用form3.cfm中的后退按钮链接并且不想看到表单重新提交页面时,我想去form2.cfm。
我不知道它是否可以修复。但欢迎提出建议或解决方案。
先谢谢
答案 0 :(得分:1)
问题在于,通过使用POST,您告诉浏览器“嘿,此表单的效果可能不适合重复。”
您可以将方法更改为GET,但这可能也不合适,因为它说“此表单没有效果,只是为了显示内容。”
一个解决方案是不提交表单,但是使用JavaScript收集数据,使用XHR请求发送数据,然后再使用JavaScript导航到下一个表单。
另一种解决方案是根本没有几种单独的形式。只需将它们全部放在一个主表格中。如果它变得很大,只需使用JavaScript隐藏不活动的部分并打开下一个/后退按钮并关闭这些部分。
答案 1 :(得分:1)
请勿使用“返回”,因为您要告知浏览器将原始页面1重新提交到第2页。
我可以建议您采用Fusebox(http://www.fusebox.org/)之类的简单框架,因为根据我的经验,您的CF应用程序将快速增长,这将使您的下游生活变得更加简单。
如果您的目标是使用“向导”类型界面来逐步浏览页面,您可以尝试将所有代码放入单个页面并使用jQuery(http://jqueryui.com/tabs/)<在'tab'中呈现它/ p>