郵便番号から住所を自動で入力する方法

フォームに郵便番号を入力して、住所を自動で入力できる機能の実装方法について解説します。

りゅう

自動入力機能があればユーザーにとって便利ですね

こちらの機能があるとサイトのUXを高めることができます。

今回は、JavaScriptのライブラリの「YubinBango」を活用した方法を紹介します。
Contact Form 7での実装方法も解説していますので、実務でもすぐに活用いただけます。

この記事でわかること

  • 郵便番号から住所を自動で入力する方法
  • YubinBangoの活用方法
  • Contact Form 7での実装方法

YubinBangoライブラリの読み込み

郵便番号から住所を自動入力させるために、JavaScriptのライブラリの「YubinBango」使用します。
YubinBango(GitHub)に解説がございますが、こちらでも紹介します。

まずはライブラリのCDNを読み込みます。
以下のコードを</body>直前に追加します。

<script src="https://yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>

これでYubinBangoを使用する準備ができました。

フォームの設定

YubinBangoはライブラリを読み込み、指定のクラスを設定するだけで使用できます。

実装手順は以下のとおりです。

  1. formタグのクラスに h-adr クラスを指定する
  2. フォームの中で、国名(p-country-name) を Japan に指定する
  3. 郵便番号入力欄にp-postal-codeクラスを指定する
  4. 住所入力欄に都道府県名(p-region)、市町村区(p-locality)、町域(p-street-address)、以降の住所(p-extended-address) のクラスを指定する

それぞれ解説します。

STEP
formタグにh-adrクラスを追加

formタグに h-adr クラスを追加します。
他にクラスの指定があっても大丈夫です。(以下同様)

<form action="" method="post" class="h-adr"></form>
STEP
フォームの中で国(Japan)を指定する

こちらはYubinBangoライブラリの使用に必ず必要な要素になります。
フォームで国名の記載を条件とすることはほとんどないと思いますので、type="hidden"で非表示にしておきます。

<form action="" method="post" class="h-adr">
    <!-- 国の指定 -->
    <input type="hidden" class="p-country-name" value="Japan"> 
</form>
STEP
郵便番号入力欄にp-postal-codeクラスを追加

郵便番号を入力する要素にp-postal-codeクラスを追加します。
こちらの入力内容を基に、ライブラリから住所が生成されます。
郵便番号が全角数字で入力された場合は半角数字に自動変換され、ハイフンが入力されても動作します。

<form action="" method="post" class="h-adr">
    <!-- 国の指定 -->
    <input type="hidden" class="p-country-name" value="Japan">
    <div class="form-item">
        <label for="post-number">郵便番号</label>
        <input type="text" id="post-number" class="p-postal-code">
    </div>
    <!-- /.form-item -->
</form>
STEP
住所入力欄に指定のクラスを追加する

最後に、住所の入力欄にクラスを追加していきます。
都道府県や市町村区などを分けて入力するフォームの場合は、それぞれの入力欄に指定のクラスを追加します。

入力内容クラス名
都道府県p-region
市町村区p-locality
町域p-street-address
以降の住所p-extended-address
<form action="" method="post" class="h-adr">
    <!-- 国の指定 -->
    <input type="hidden" class="p-country-name" value="Japan">
    <div class="form-item">
        <label for="post-number">郵便番号</label>
        <input type="text" id="post-number" class="p-postal-code">
    </div>
    <!-- /.form-item -->
    <div class="form-item">
        <label for="address">住所</label>
        <input type="text" id="address" class="adressp-region p-locality p-street-address p-extended-address">
    </div>
    <!-- /.form-item -->
</form>

上記の例では、住所は1つの入力欄にして、すべて出力されるようにしています。

あとはCSSでスタイルを整えれば完成です。

実装例は以下のとおりです。

See the Pen 郵便番号自動入力 by 竜貴族 (@czuqbsxm-the-selector) on CodePen.

りゅう

自分の郵便番号でやってみましたが正確でした!

Contact Form 7での実装方法

WordPressではプラグインでフォームを作成することが大半です。
その中でも有名なContact Form 7での実装方法も紹介します。

STEP
functions.phpにライブラリの読み込みを追加

YubinBangoライブラリの読み込むため、functions.phpにJavaScriptを読み込むためのフックを追加します。

function yubinbango_scripts() {
    wp_enqueue_script('yubinbango-cdn', 'https://yubinbango.github.io/yubinbango/yubinbango.js', array(), null, true);
}
add_action('wp_enqueue_scripts', 'yubinbango_scripts');

functions.phpファイルは、テーマの機能やカスタマイズを追加するためのファイルです。
編集する際は、バックアップを取ってから上記のコードを追加してください。

STEP
フォームの作成

Contact Form 7をインストールし、フォームを新規追加します。

STEP
フォームの項目にクラスを追加

郵便番号入力欄の作成例

住所入力欄の作成例
複数クラスを設定する場合は半角スペースで区切ります。

STEP
国の指定の追加

フォームの中に国を指定するコードを追加します。

<input type="hidden" class="p-country-name" value="Japan">
STEP
フォームタグにクラスを追加

フォームタグにクラスを追加するためのコードを記述します。
Contact Form 7 のショートコードを呼び出す際にhtml_class="h-adr"を記述します。
これで、formタグにクラスを追加することができます。

こちらの手順でContact Form 7での実装が可能です。

まとめ

郵便番号から住所を自動で入力する方法を解説しました。

YubinBangoライブラリを使用すると簡単に実装が可能です。
ユーザーにとって便利な機能ですのでぜひ活用ください。

web制作者はWordPressブログを始めましょう!
以下の記事で、WordPressブログをやるメリットについて解説しています。

おすすめのレンタルサーバーについては以下の記事で解説しています。

web制作者におすすめの書籍です。
CSS設計を学ぶとサイト設計の理解が深まり、保守性やカスタマイズ性の高いサイトを作ることができ、結果として制作効率を高めることができます。ぜひ一読ください。

CSS設計完全ガイド 詳細解説+実践的モジュール集/半田惇志
created by Rinker

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

京都で活動するweb制作者(プロフィール
WordPressサイトを中心にホームページ制作をしています。
HTML/CSS/Sass/JavaScript/jQuery/WordPress/PHP

コメント

コメントする

CAPTCHA