[Firefox] リロードしてもチェックボックス等の値が維持されてしまう問題の対処法
1 min read
背景
Firefox でページのリロードをした際に、インプットに入力したテキストやチェックボックスの値などが維持された状態で表示されてしまう。(静的な HTML の場合)
もちろん、スーパーリロードをした際は初期化されて表示されます。
色々と解決方法があって、状況に応じて使い分けたり併用したりしてます。
ただ、これらの設定だけじゃ不十分な場合もあります。
サーバサイド
Cache-Control: no-store
PHP
header("Cache-Control: no-cache, no-store");
フロントエンド
JavaScript
var input = document.querySelector("input");
input.setAttribute("autocomplete", "off");
jQuery
$("input, select, textarea").attr("autocomplete", "off");
HTML
HTML の<head>
内で指定する場合
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<input>
に直接指定する場合
<input type="text" name="hoge" autocomplete="off" />
<form autocomplete="off">~</form>
のような感じでも使えるみたい。