2

URLで渡された変数から多くのフィールドが入力されるフォームのページがあります。これらのフィールドは無効(編集不可)であり、ユーザーが表示するためだけにあります。

残りのフィールドはユーザー入力が必要であり、無効(編集可能)ではありません。フォームが送信されると、確認ページが表示されます。編集不可の情報がフォーム間で同一である場合、ユーザーがこれらのフォームのいくつかを送信する必要がある場合があります。そのため、確認ページからフォームページに戻ることができれば、時間を大幅に節約できます。

これを機能させたいのは、ユーザーが戻るボタンを押すと、すべての非編集可能フィールドが入力されますが、編集可能フィールドは空白です。これはFirefoxが行っていることですが、IE8はEDITABLEフィールドに入力された内容を「忘れ」ません。

キャッシュを無効にするには、ページの最初と最後に次のように表示されます。

<head>
    <meta http-equiv="Pragma" content="no-cache"/>
    <meta http-equiv="Cache-Control" content="no-store"/>
<head/>

戻るボタンが押されたときに編集可能フィールドに入力された内容をIEに忘れさせるには、さらに何をする必要がありますか?

それが重要な場合、私のページはすべてPHPで生成されます。

編集:

私がそうしないように言ったとしても、これは私のページをキャッシュするIEの問題であるように私には思えます。私のmetaタグは正しいですか?IEがページをキャッシュしないようにするために何か他のことをする必要がありますか?

4

3 に答える 3

2

autocomplete='off'フォームフィールドに属性を追加してみましたか?

たとえば、次のようなものです。

<input type='text' name='myfield' size='10' autocomplete='off'>
于 2011-01-06T17:40:08.900 に答える
1

私はこのコードスニペットを見つけました、そしてそれは私が望むことをするようです。

    <input type="hidden" id="refreshed" value="no"/>
    <script type="text/javascript">

        onload=function(){
            var e=document.getElementById("refreshed");
            if(e.value=="no"){
                e.value="yes";
            }

            else{
                e.value="no";
                location.reload();
            }

        }

    </script>   

アップデート:

上記のソリューションはIEで機能しましたが、Firefoxでは正しく機能しないことがわかりました。状況をさらに調査して、私は最終的にいくつかのSOの助けを借りて自分の問題を理解しました。DOCTYPE以下はより良い解決策です、あなたのヘッダーの上にそれを置いてください。詳細はこちら

<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>
于 2011-01-06T18:38:19.353 に答える
0

戻るボタンを押すのではなく、フォームにリダイレクトするだけではどうでしょうか(フォームに戻る「EnterMore」というリンクがあります)。

このようにして、ページが読み込まれたときに、入力をデフォルトで空白の値にすることができます

<input type="textbox" name="somename" value="">
于 2011-01-06T18:25:53.497 に答える