入力値をキャッシュ/保存しないようブラウザに指示するページを作成します


116

ほとんどのブラウザはフォーム入力値をキャッシュします。したがって、ユーザーがページを更新すると、入力の値は同じになります。

これが私の問題です。ユーザーが[ 保存]をクリックすると、サーバーはPOSTされたデータ(チェックされた製品など)を検証し、無効な場合はブラウザーに送信します。ただし、上記のように、サーバーが一部の値の選択をクリアした場合でも、ブラウザーのキャッシュのためにそれらの値が選択されている可能性があります。

データには(親アイテムが選択されるまで)非表示のチェックボックスがあるため、ユーザーは、[ 保存 ]を再度クリックしてエラーメッセージが表示されるまで、以前の値がまだ選択されていることに気付かない場合があります。イライラする。

これはCtrl+ を実行することで解決できますF5が、それも解決策ではありません。フォーム/ページのフォーム入力データをキャッシュしないようにブラウザに指示する自動/プログラム的な方法はありますか?


1
である<form autocomplete="off"...あなたのためのオプションは?この問題はすべてのブラウザで発生していますか、それとも1つだけですか?
デビッドコラー

ドロップダウン<select>リストを参照してこの質問に答える方法はありますか?リストがあり、selected選択肢を定義しましたが、ページを更新しても以前に選択したオプションが保持されます。
マーティン

私は反対を達成したい-戻るボタンで各ページの入力値を保持します(2回クリックして、それに応じて入力を取得します)多くのJSコードの使用に関するさまざまな例がありますが(実際にはIMHOで機能しません)、もっと簡単な方法はありますか?フォームと入力フィールドの両方でautocomplete = "on"を試しましたが、機能しません。ブラウザはChromeです。
ドミトリーz

回答:


197

値を空白として明示的に設定していますか?例えば:

<input type="text" name="textfield" value="">

これにより、ブラウザがデータを適切な場所に配置しないようにする必要があります。または、autocompleteフォームタグに属性を追加することもできます。

<form autocomplete="off" ...></form>

1
チェックボックスについて話しているので、値を ""に設定できません。また、オートコンプリートオフは、「ドロップダウンオートコンプリートリスト用」だけでなく、「ユーザーがF5を押したとき」フォーム入力値を保存しないことを意味しますか?
queen3

2
developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletionによると、少なくともGeckoでは、autcompletion = offは「セッション履歴のキャッシュ」に影響を与えます。それが必要なもので機能するかどうかをテストします。
queen3

1
@ queen3:はい、「チェックされていません」と明示的に言う方法がないため、チェックボックスは問題です。それでも問題が解決しない場合は、を試してみてくださいchecked="false"。ブラウザによっては動作する場合があります。もう1つの方法は、Javascript / jQueryを使用して、ページの読み込み時にすべてのチェックボックスを明示的にオフにすることです。
DisgruntledGoat 2010

1
@ queen3は、「autocomplete = off」ではなく「autocomplete = off」を意味します
Matt Baker

2
すべての回答と提案がうまくいきませんでした。chromeを使用して.netを開発
hakan

45

以下からのスタックオーバーフローの参照

ブラウザがすでに値を保存している場合、value = ""では機能しなかったため、追加する必要があります。

入力タグには、設定可能なautocomplete属性があります。

<input type="text" autocomplete="off" />

フォームにもオートコンプリートを使用できます。


9
Chromeでは、autocomplete="off"個々のフォーム要素で使用しても効果がないように見えvalueます。属性が明示的に空白に設定されCache-Control: Must-Revalidateていても、ヘッダーの送信中は効果がありませんでした。Chromeでこの動作を抑制するautocomplete="off"には、<form>要素自体に属性を適用する必要がありました。
mindplay.dk

フォームでautocomplete = "off"を実行しましたが、うまくいきませんでした
Kingsley Simon

ブラウザのような@KingsleySimonの詳細情報が必要です。ブラウザで設定が正しく行われていない可能性があります
shareef

1
:ブラウザの動作が変更されたようですdeveloper.mozilla.org/en-US/docs/Web/Security/...
デヴィッド・

htmlの有効なフォームに注意してください。そして、例えば、それは別の内部では形にならないなど
shareef '25 / 08/25

10

別のアプローチは、HTMLのフォームの直後にJavaScriptを使用してフォームをリセットすることです。

<form id="myForm">
  <input type="text" value="" name="myTextInput" />
</form>

<script type="text/javascript">
  document.getElementById("myForm").reset();
</script>


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.