3

ほとんどのブラウザーはフォームの値をキャッシュするため、ユーザーが別のページに移動してから戻るボタンを押しても、最初からやり直す必要はありません。

jquery フォーム プラグインを使用すると、フォームが正常に送信された後にも発生します。

次のシナリオ:

  1. ユーザーがフォームを送信

  2. 送信が成功したことを示すメッセージが表示され、フォームがクリアされます

  3. ユーザーが他のページに移動する

  4. ユーザーが戻るボタンを押す

  5. ページは、フォームが送信される前の状態に復元されます。

送信後に resetForm() を呼び出すと、フォームの初期値が返されるだけで、キャッシュの問題は解決されません。

$(document).ready(function(){
    $('form').ajaxForm({
        success: function(responseText, statusText){
            displayMessage('form successful');
            $('form').resetForm();
        }
    });
});

ページがロードされたときに resetForm() を呼び出すと、キャッシュの問題は解決しますが、ページ間を移動するときに予期されるブラウザーの動作が中断されます。

$(document).ready(function(){
    $('form').ajaxForm().resetForm();
});

送信が成功した後にキャッシュをクリアする方法はありますか?

4

1 に答える 1

2

私はJQueryにはあまり興味がありませんが、フォーム値の保存は通常、次を使用してオフにすることができます

autocomplete='off'

ソースは例えばこちら

私の知る限り、ブラウザーがキャッシュに保存する値に影響を与えるクロスブラウザーの方法は他にありません。これがもたらす複雑なセキュリティへの影響のため、プログラムでこのようなものにアクセスする可能性は低いと思います。

于 2009-12-10T12:49:06.260 に答える