重複送信を防止しようとしているフォームのページがありますが、これはかなり簡単です(誰かが興味を持った場合に備えて、これを使用しました)
$("form").submit(function()
{
setTimeout(function()
{
$("input").attr("disabled", "disabled");
}, 50);
});
...このページから盗んだものですが、正常に動作します。予想どおり、入力はすぐに無効になり、フォームは期待どおりに送信され、ユーザーはリダイレクトされます。
私の問題は次のとおりです。ユーザーがページ内ナビゲーションの代わりに[戻る]ボタンを使用することがあると予想されるため、[戻る]ボタンをクリックしてもページが機能するようにしたいと思います。ただし、投稿が成功した後で[戻る]ボタンをクリックすると、すべての入力が無効になっている前のページに戻ります(ご存知かもしれませんが)。必要に応じて、[戻る]ボタンをクリックした後、ページを使用できるようにしてください。
最初にヘッダー/メタタグを使用してページをキャッシュしないようにブラウザに指示しようとしましたが、それは機能しませんでした(Firefox 3.6.8では)-それから、おそらくそうしないので、とにかくそれをしたくないと決めましたクロスブラウザ互換ではなく、とにかくベストプラクティスではない可能性があります(これがそのようなケースの1つです)。私が見たいくつかのアプリケーションのように[戻る]ボタンを「壊す」ものは使いたくありません(たとえば、ユーザーがクリックしてもページに戻らず、強制的にそのページにとどまるようにします)。 )、これは私には悪い考えのように思えます。ユーザーが[戻る]ボタンをクリックしたときにページを役に立たなくすることなく、クライアント側でフォームの重複送信を防ぐ方法を知っている人はいますか?(問題が発生した場合は、ASP.NET MVC 1を使用しています)。