2013-11-28 63 views
2

我的項目在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按鈕鏈接時,它會轉到th e form1.cfm並沒有問題。當我在form3.cfm中做同樣的事情時,它必須去form2.cfm,但它要求form的重新提交,因爲我知道它是form1.cfm的操作頁面。

當我使用form3.cfm中的後退按鈕鏈接並且不想看到表單重新提交頁面時,我想去form2.cfm。

我不知道它是否是可修復的。但建議或解決方案是受歡迎的。

由於提前

回答

1

的問題是,通過使用POST,你告訴瀏覽器「嘿嘿,這種形式具有效果可能不適合重複。」

您可以將方法更改爲GET,但這可能也不合適,因爲該表示「此表單沒有效果,只是顯示內容」。

一種解決方案是用JavaScript提交表單可言,但用JavaScript收集數據,與XHR發送請求,然後導航到下一個形式,再次。

另一個解決方案是根本沒有幾個單獨的表單。只需將它們全部放在一個主表格中即可。如果這變得很大,只需使用JavaScript來隱藏不活動的部分,並使下一個/後退按鈕打開並關閉這些部分。

1

不要使用「後退」,因爲你是在告訴瀏覽器原第1頁重新提交到第2頁。

我可以建議你採用像保險絲盒(http://www.fusebox.org/)一個簡單的框架,因爲在我的經驗,你的CF應用程序將迅速增長,這將使您的生活在下游更簡單。

如果你的目標是有,你通過網頁步驟a「嚮導」類型的接口,你可以嘗試把所有的代碼放到一個頁面,並使其成爲「選項卡」內使用jQuery(http://jqueryui.com/tabs/