我有一個ASP.NET 4.0 Web窗體。有一個我希望用戶提交和檢查的文本框。如果它是 是正確的,我會清空文本框,並且不希望用戶能夠重新提交該數據。在IE8中,用戶可以回擊(獲得重新提交警告),如果刷新,它將重新提交該文本框中的數據。不允許重新提交頁面
我已經嘗試將值設置爲null並禁用textbox的viewstate。
如何停止重新提交?
我有一個ASP.NET 4.0 Web窗體。有一個我希望用戶提交和檢查的文本框。如果它是 是正確的,我會清空文本框,並且不希望用戶能夠重新提交該數據。在IE8中,用戶可以回擊(獲得重新提交警告),如果刷新,它將重新提交該文本框中的數據。不允許重新提交頁面
我已經嘗試將值設置爲null並禁用textbox的viewstate。
如何停止重新提交?
我不認爲對於後退按鈕,你有任何選擇,但要檢查表單上的值再次提交,並確定如果它是重新提交的表單或不。 你有另一種選擇,在提交後重定向到名爲test.aspx的中間頁面,該頁面重定向到目標頁面,因此在這種情況下,後退按鈕將不起作用。
您可以使用AJAX發佈文本框中的數據,由於您沒有「返回」按鈕,因此更好。
對於小東西(一個場,小信息)我用這一個:
$.post("savedata.aspx", { name: "John", time: "2pm" });
看看在others examples,它可能是有用的。
只記得在你的項目中引用jQuery。
提交後,您可以保存表單已被提交到會話變量中的事實。當表單被提交時,你首先測試這個變量。如果這個變量是真的(或者你設定的那個),那麼什麼都不做。用戶可以刷新並且不會重新提交。
如果絕對至關重要的是提交文件永遠不會被處理兩次,請結合上述所有內容。
你不能禁用按鈕本身嗎?或者,在最後一種情況下,作爲不好推薦的解決方法,您可以在首次提交時添加視圖狀態並檢查該狀態。 – Andre 2011-04-09 21:12:09
您無法停止重新提交,瀏覽器將執行瀏覽器要執行的操作。你可以檢查提交,如果它是重複的,然後忽略它。可能你需要渲染一個隱藏的GUID或類似的東西來檢查重複? – 2011-04-09 21:12:53