localStorageでフォームの入力内容を自動保存する方法|JavaScriptで離脱防止対策!
スポンサーリンク

こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。

長いお問い合わせフォームやアンケートフォームを記入中に、うっかりページを閉じてしまった…
あるいは、リロードしたらすべて白紙に戻ってしまった…

そんな経験、ありませんか?

フォーム離脱の原因のひとつに、「入力データの消失」があります。
せっかく書いた内容が消えてしまえば、ユーザーはストレスを感じ戻ってきてくれません。

そこで今回ご紹介するのが、JavaScriptの localStorage を活用して、フォームの入力状態をブラウザに一時保存する方法です。

特別なライブラリは不要で、数行のコードだけで実装可能!
ユーザビリティ向上や離脱防止に大きく貢献するこのテクニック、ぜひあなたのサイトにも取り入れてみてください。

 

localStorageとは?

localStorage は、ブラウザにデータを保存できるWeb Storage APIのひとつです。
以下のような特徴があります。

  • JavaScriptで簡単に扱える
  • 保存したデータはブラウザを閉じても残る
  • 最大5MBほどの容量が使える
  • 同一ドメイン内であれば、複数ページ間で共有可能

今回は、この localStorage にフォームの内容を保存しておき、ページを再訪したときに自動復元させる仕組みを作ります。

 

実際のデモコード

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.

 

スポンサーリンク

実装ステップ①:HTMLでフォームを作成

まずは基本となるフォームを用意します。

<form id="contactForm">
  <div class="box">
  <label for="name">お名前:</label>
  <input type="text" id="name" name="name">
  </div>
  <div class="box">
  <label for="email">メールアドレス:</label>
  <input type="email" id="email" name="email">
  </div>
  <div class="box">
  <label for="message">お問い合わせ内容:</label>
  <textarea id="message" name="message"></textarea>
</div>
  <button type="submit">送信</button>
</form>

 

実装ステップ②:JavaScriptで保存と復元を実装

保存処理(リアルタイムで更新)

const form = document.getElementById("contactForm");

form.addEventListener("input", () => {
  const formData = {
    name: form.name.value,
    email: form.email.value,
    message: form.message.value
  };
  localStorage.setItem("contactFormData", JSON.stringify(formData));
});
  • input イベントでリアルタイムに保存
  • JSON形式でデータをまとめて localStorage に格納

 

復元処理(ページ読み込み時)

window.addEventListener("DOMContentLoaded", () => {
  const saved = localStorage.getItem("contactFormData");
  if (saved) {
    const data = JSON.parse(saved);
    form.name.value = data.name || "";
    form.email.value = data.email || "";
    form.message.value = data.message || "";
  }
});
  • ページ再表示時に自動で復元
  • 入力済みの情報が消えないことで、ユーザーに安心感を与えます

 

実装ステップ③:送信後はデータをクリアしよう

送信ボタンを押したあと、保存されたデータを消す処理も忘れずに。

form.addEventListener("submit", () => {
  localStorage.removeItem("contactFormData");
});

これを入れておくことで、送信後の再訪時に古いデータが表示されるのを防げます。

 

応用アイデア:確認ページへの遷移でも有効

  • 2ページ構成のフォーム(入力 → 確認 → 送信)にも応用可能
  • sessionStorage にすればタブを閉じたら消える一時保存にも対応
  • selectやチェックボックスの状態も保存可能

 

注意点:個人情報・セキュリティ

localStorage はユーザーのブラウザに保存されるため、セキュリティ面に配慮が必要です。

  • パスワードやクレジットカード番号などの機密情報は絶対に保存しない
  • 共有パソコンでは情報が他人に見られる可能性がある
  • 保存内容はできるだけ最小限にする

 

まとめ

フォームの入力状態を一時的に保存することで、ユーザーの離脱防止や利便性アップが期待できます!
特に、長文の問い合わせフォームやアンケート、問い合わせ途中でページを離れてしまいがちなユーザーが多いサイトには非常に効果的です!

JavaScriptと localStorage の組み合わせで、次のような恩恵が得られます。

  • うっかりリロードしても入力内容が消えない
  • ページをまたいでも内容を保持できる
  • ライブラリなしで導入できて軽量

ぜひ、あなたのWebサイトでも取り入れて、ユーザーに優しいフォーム設計を実現してみてくださいね!

 

satokotadesignキャンペーン実施中!

ぶっちゃけ無料相談会!ホームページ制作の悩み話してみませんか?
satokotadesign4周年記念キャンペーン

静岡県浜松市でホームページ制作ならsatokotadesign
静岡県浜松市でホームページ制作ならsatokotadesign

スポンサーリンク
おすすめの記事