LoginSignup
17
8

ブラウザバック後、check boxが以前の状態を保持してしまうのを避ける

Posted at

はじめに

ページ1 → ページ2 → ブラウザバックしてページ1 へ遷移を行うと、
checkboxが以前の状態のまま保持されてしまいます。
(ページ1でScalesにcheckしてページ2へ。その後、ブラウザバックするとScalesのチェックは残ったまま)

checkbox.gif

利用規約などにおいては、チェックボックスは外すようにしたいので以下のコードを修正します

<fieldset>
  <legend>Choose your monster's features:</legend>

  <div>
    <input type="checkbox" id="scales" name="scales">
    <label for="scales">Scales</label>
  </div>

  <div>
    <input type="checkbox" id="horns" name="horns">
    <label for="horns">Horns</label>
  </div>
</fieldset>
<a href="sample2.html">ページ2へ</a>

checkが残る原因は?

checkboxに限らず、
inputタグへの入力情報はブラウザに記憶される仕様となっているようです。

既定では、ウェブサイト上の <input> 欄を通じてユーザーが送信した情報はブラウザーによって記憶されます。
これよってブラウザーは、自動補完 (入力を受けた入力欄の補完候補をユーザーに提示する機能) や、オートフィル (読み込まれた入力欄をあらかじめブラウザーが補完する機能) を実現しています。

解決方法

  • autocomplete="off" を追加するだけ
- <input type="checkbox" id="scales" name="scales">
+ <input type="checkbox" id="scales" name="scales" autocomplete="off">

autocomplete属性を指定することで、ブラウザの自動補完やオートフィル機能の制御ができます。

autocomplete="off"にすることで、ブラウザに対してユーザーの入力情報を保存しないようにすることが出来ます。

また、ブラウザがユーザーの入力情報をキャッシュしないことで、
ページ遷移後にブラウザバックしても 入力データが残らないです。

inputタグの他にも、 textarea、select、formタグで利用できます。

入力値としてテキストまたは数値を取る 要素、 要素、 要素、 要素で利用できます。

17
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
8