我原先懷疑是表單重複執行兩次,可是程式碼似乎沒問題,而且時好時壞,完全找不到規則性,於是我從ASP語法開始下手,似乎沒問題,又從SQL SERVER找問題,還是沒有,到最後發現只有IE會出現這樣的問題,Google瀏覽器很正常,Firefox不能跑先前工程師寫的javascript表單按鈕,所以無法測,
就這樣...找問題找了一個星期,還懷疑到Https會弄丟session的問題,然後又錯怪IIS,又找許多Session弄丟的問題...今天晚上,我終於看到某一篇網誌...突然恍然大悟....~_~
真的是表單送出了兩次...~_~
先看看input的寫法
原先A網頁:
<INPUT type=image SRC="../images/shopping-icon5.gif" WIDTH="88" HEIGHT="18" BORDER="0" align=absmiddle onClick="CheckFormData();">
原先的B網頁的Javascript驗證,最後面的程式碼:
var FormUrl="next.asp";
formA.hidDec.value="LType";
formA.method="post";
formA.action="<'%=application("sslWebUrl")%>"+"/Shopping/"+FormUrl;
document.formA.submit();
以上是原先工程師寫的語法,眼尖的你是否發現問題了?
這段程式碼我看了無數次,唉唉...資值駑鈍呀....
原來是input image本來就可以當submit,所以在Javascript語法中不用加上submit....所以只要改成以下寫法(參考後的寫法)
A的form開頭:
<FORM NAME="formA" id="formA" method="post" action="<%=application("sslWebUrl")%>/Shopping/next.asp">
A的input image寫法
<INPUT type=image SRC="../images/shopping-icon5.gif" WIDTH="88" HEIGHT="18" BORDER="0" align=absmiddle onClick="return CheckFormData();">
B中最後的javascript中,我把原先的傳送表單的語法,都改寫在form,只要判斷驗證後的表單是否正確就好
如果也有遇到類似問題的朋友,希望這篇有幫上忙..^_^
參考網址 http://www.jaceju.net/blog/?p=88
沒有留言:
張貼留言