JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】チェックボックス1つで別フィールドに自動入力する方法

はじめに

Webフォームを作成していると、「配送先住所は請求先住所と同じ」といったように、あるフィールドに入力した内容を別のフィールドへ自動的にコピーしたい場面がよくあります。JavaScriptを使えば、チェックボックスにチェックを入れるだけでこの処理を簡単に実装できます。

本記事では、プライマリアドレス(主な住所)を入力し、チェックボックスを操作するとセカンダリアドレス(予備の住所)に同じ内容が自動入力されるサンプルコードを紹介します。

サンプルコード

HTMLとJavaScriptを組み合わせた実装例は以下の通りです。

<!DOCTYPE html>
<html>
<head>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
</style>
</head>
<body>
<h1>JavaScript Auto-filling one field same as other</h1>
<h2>Enter your primary address</h2>
Address<input class="address" type="text" /> Pin Code<input class="pincode" type="text" />
<h4>Secondary Address same as primary</h4>
<input class="check" type="checkbox" /> Same Address
<h2>Enter your secondary address</h2>
Address<input class="address" type="text" /> Pin Code<input class="pincode" type="text" />
<script type="text/javascript">
   let checkEle = document.querySelector(".check");
   let addressEle = document.querySelectorAll(".address");
   let pinCodeEle = document.querySelectorAll(".pincode");
   checkEle.addEventListener("change", (event) => {
      if (event.target.checked) {
         console.log(addressEle[0].value);
         addressEle[1].value = addressEle[0].value;
         pinCodeEle[1].value = pinCodeEle[0].value;
    }
   });
</script>
</body>
</html>

コードのポイント

  • document.querySelector / querySelectorAll: チェックボックスはquerySelectorで単一取得し、住所と郵便番号の入力欄は同名クラスが複数存在するためquerySelectorAllでNodeListとして取得しています。
  • changeイベント: チェックボックスの状態が変化したタイミングで処理を実行します。
  • checkedプロパティ: event.target.checkedtrue(チェックされた状態)の場合のみ、値のコピーを行います。
  • 値のコピー: 1番目の要素(インデックス0)の値を、2番目の要素(インデックス1)のvalueに代入することで自動入力を実現しています。

実行結果

【JavaScript】チェックボックス1つで別フィールドに自動入力する方法

上記のように、まずプライマリアドレス側に住所と郵便番号を入力します。その後、「Same Address(同じ住所)」のチェックボックスをクリックすると――

【JavaScript】チェックボックス1つで別フィールドに自動入力する方法

チェックを入れた瞬間に、セカンダリアドレス側の住所・郵便番号フィールドへ同じ内容が自動的に反映されます。

応用のヒント

実務では、チェックを外した際に入力欄をクリアしたり、入力中の値をリアルタイムに同期させたいケースもあります。その場合はchangeイベントの代わりにinputイベントを使用したり、else句で対象フィールドのvalueを空文字に設定することで対応可能です。ECサイトの注文フォームなど、ユーザーの入力の手間を減らしたいシーンでぜひ活用してみてください。

  1. JavaScriptで別のフィールドと同じ値を入力欄に自動入力する方法

    Webフォームを作成していると、「1つ目に入力した住所をそのまま2つ目のフィールドにも入れたい」といった場面はよくあります。JavaScriptを使えば、ボタンを1つクリックするだけで、別のフィールドと同じ値を簡単に自動入力できます。本記事では、その具体的な実装方法をサンプルコード付きで解説します。 サンプルコード <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport&quo

  2. 【JavaScript入門】クライアントのIPアドレスを取得する方法とサンプルコード

    Webアプリケーションを開発していると、サイト訪問者のパブリックIPアドレスを取得したい場面があります。しかし、JavaScriptにはブラウザから直接IPアドレスを取得する標準APIが用意されていないため、外部のIP検索サービスを利用するのが一般的です。 実装の仕組み 本記事では、ipinfo.ioが提供するJSONP形式のAPIを使用して、クライアントのIPアドレスを取得する方法を紹介します。JSONPを利用することで、同一生成元ポリシー(クロスオリジン制約)を回避しながら、別ドメイン上のデータを受け取ることができます。 サンプルコード <!DOCTYPE html> <