注意:幾個小時前,我還在Javaranch中發佈了此問題。鏈接爲http://www.coderanch.com/t/629456/JSP/java/Cancel-button-behaves-differently-Chrome。 我還沒有收到回覆。我在這裏發佈,看看我能否得到一個或兩個建議。當談到struts和JSP時,我也很初學,所以請讓我知道我是否應該提供更多的細節。取消按鈕在Firefox和Chrome中的行爲有所不同
問題是我的網頁上的取消按鈕在Chrome和Firefox瀏覽器中的行爲有所不同。
我的當前URL是 context path/importEmployee.do?method = load。
在我目前的頁面中,我上傳了一個CSV文件。這個頁面有兩個按鈕 - 好的和取消,這些按鈕是我遇到的麻煩(我會在短時間內來到這個部分)。相關的JSP部分如下。
<html:form action="importEmployee?method=save" method="POST" styleId="importEmployee" enctype="multipart/form-data"> ....... some headers and title bar and stuff... and then as follows. <div class="contentSection"> <table border="0" class="formTable"> <html:hidden property = "selectedSet" /> <tr> <td class="formLabel"><label for="file">Download File:</label> </td> <td> <span> <a class="buttonStyle" rel="nofollow">Download Sample CSV</a> </span> </td> <tr> <td class="spacerCell"> </td> </tr> <tr> <td class="formLabel"><label for="file">CSV File:</label></td> <td><html:file property="importFile" styleId="importFile" size="60" maxlength="120" /></td> </tr> <tr> <td class="spacerCell"> </td> </tr> </table> </div> <table border="0" class="footerBar"> <tr> <td id="footerLeft"> <html:submit value=" OK " title=" OK " styleClass="button"> </html:submit> <span> <a class="buttonStyle" href="<%=request.getContextPath()%>/employees.do?method=load"> Cancel </a> </span> </td> <td id="footerRight" class="pagination"> </td> </tr> </table>
一旦我上傳CSV文件,然後點擊OK,相應的動作類方法被調用,我的網址更改 - 上下文路徑/ importEmployee.do方法=保存
該頁面基本上包含導入統計信息,未處理記錄的錯誤消息等。 此頁面還有一個ok和一個取消按鈕。 對應的JSP部分如下。
<html:form action="importEmployee?method=save" method="POST" styleId="importEmployee" enctype="multipart/form-data"> <table border="0" > <tr> <td id="leftEdge"><img src="<%= request.getContextPath()%>/images/new/edge_left.gif" width="30"
HEIGHT = 「321」 ALT = 「」/>
..... some processing and then... <table border="0" class="footerBar"> <tr> <td id="footerLeft"> <span> <a class="buttonStyle" href="<%=request.getContextPath()%>/employees.do?method=load"> OK </a> </span> <input name="cancel" id="cancel" type="submit" class="button" value="Cancel" onclick="goBack(); return false;" /> </td> <td id="footerRight" class="pagination"> </td> </tr> </table>
所以,如果我點擊第二頁(上下文路徑/ importEmployee.do取消?方法=保存),我回到第一個URL頁面,即 上下文路徑/ importEmployee.do?method = load。 但是這部分在Firefox和Chrome瀏覽器中的表現有所不同。 在Chrome中,如果我在第二頁中單擊取消,我仍然可以在第一頁中看到上傳的文件名(第一個JSP中的隱藏屬性是文件名)。如果我點擊確定,我可以再次執行處理,就像在第一頁上首次單擊確定所做的那樣。 但是,當我在Firefox瀏覽器中運行我的應用程序時,如果在第二頁中單擊取消,上傳的文件名稱會在第一頁中顯示'沒有選擇文件'。因此,要再次導入員工,我需要再次上傳新的/相同的CSV文件。
我不希望文件出現在第一頁,當我點擊第二頁中的取消時,即使我在Chrome中運行我的應用程序。是的,我要求文件名稱是一個隱藏的屬性。這是因爲根據文件中的數據,可以完成不同類型的處理,其中一些處理需要在另一個頁面上從用戶處獲取額外輸入,第三個頁面處理。所以文件名應該傳遞給表單,但我不希望用戶再次上傳文件。
但是,如果用戶點擊取消,我不希望文件名保留在第一頁。但是這沒有發生。
所以我有兩個問題。爲什麼Chrome和Firefox中的行爲有所不同,有沒有一種方法可以糾正它在Chrome中的行爲方式?
不確定這是否是瀏覽器限制,但它看起來必須是這樣。 – Chan