時沒有違反頁面我有一個表格,我正在試圖防止重複提交,這是相當簡單的頁面(如果任何人的好奇,我用這個防止重複的表單提交,同時單擊後退按鈕
$("form").submit(function()
{
setTimeout(function()
{
$("input").attr("disabled", "disabled");
}, 50);
});
...這是我從this page偷了,並能正常工作正如預期的那樣,在輸入被禁止迅速,預期提交表單,用戶會被重定向
這裏是我的問題:我預計用戶使用後退按鈕有時而不是頁內導航,所以我希望頁面能夠正常工作點擊後退按鈕。但是,當我在成功發佈後單擊後退按鈕時,我將返回到前一頁,禁用所有輸入(如您可能已知會發生的情況)。我希望他們在點擊後退按鈕後能夠使用該頁面,如果他們願意的話。
我第一次嘗試使用頭文件/元標記來告訴瀏覽器不要緩存頁面,但這並不起作用(在Firefox 3.6.8中) - 然後我決定我不想這樣做,因爲它可能不會跨瀏覽器兼容,並且可能不是最佳做法(here就是這樣一種情況)。我不想使用任何能夠「斷開」後退按鈕的事情,就像我看過的一些應用程序一樣(例如,當用戶點擊它時,它不會將它們帶回頁面,而是強制它們留在該頁面上),這對我來說似乎是一個糟糕的主意。有誰知道一種方法,我可以防止重複表單提交在客戶端沒有呈現頁面無用,當用戶點擊後退按鈕? (萬一它很重要,我使用ASP.NET MVC 1)。
這是一個好主意,可以防止服務器上的表單重複處理。儘管如此,我在這個問題背後的想法是如果可能的話,阻止客戶採取行動。顯然,我們也必須在後端處理它,但我想盡量避免任何客戶端操作。 – Andy 2013-02-18 21:38:52