2011-03-18 56 views
2

我有一個窗體禁用提交按鈕,單擊它時。 但是,如果用戶點擊瀏覽器「停止」按鈕怎麼辦。 然後他將無法重新提交表單。JavaScript - 檢測瀏覽器停止按鈕單擊

有沒有辦法處理這種情況,可能檢測到停止按鈕按?

回答

2

什麼是禁用提交按鈕的原因是什麼?

您試圖避免雙擊? - >您可以在短時間內禁用提交按鈕,在超時時重新啓用它。

您正試圖避免不耐煩的重新加載點擊? - >相同,但是長時間不活動。

您試圖停止一個表單兩次提交導致重複操作發生? - >只有禁用按鈕才能對抗這種情況,因爲後退/前進將導致頁面重新加載,可能會保留舊的表單內容,但不會禁用殘疾狀態,除非被bfcache短路。在這種情況下,您必須創建一次性使用的令牌或不能多次使用的新項目ID,並將其放在窗體的隱藏字段中。服務器可以檢查它並禁止重複。

可能檢測到停止按鈕?

避免onstop,這不是真的可靠。除了瀏覽器支持問題外,它無法捕獲導航和停止/重新加載等所有可能的組合。你永遠不會知道服務器腳本得到了多少,它是否執行了一個動作。

1

最好的辦法是檢測服務器上的提交按鈕,因此只能提交一次。這樣,無論發生什麼事情(螢火蟲等),表單只會提交一次。有一個OnStop()事件,但它只是IE,我不會推薦使用它。

+0

根據應用程序的不同,在服務器上檢測多個提交可能會非常複雜。 – Pointy 2011-03-18 20:20:21

相關問題