YubinBango.js で住所自動入力フォームを作成する方法

YubinBango.js を使って、郵便番号から住所を自動入力するフォームを作成する手順の備忘録です。

YubinBango.js は、郵便番号から住所を表示する機能を実装できるJavaScriptのライブラリです。

郵便番号のフォームに数字を入力すると、自動で該当する住所を表示するフォームを実装することができます。

上記のサンプルでは、郵便番号を入力すると、下の住所欄に自動で住所が表示されます。

YubinBango.jsは、GitHubで公開されており無料で利用できます。さらに、MITライセンスのため、商用利用も可能です。

YubinBango.jsの使い方

入力した郵便番号から住所を表示するYubinBango.js の基本的な設定方法です。

ライブラリの読み込み

はじめに、YubinBango.js のライブラリを読み込むコードをheadタグ内に記述します。

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

scriptタグで外部のライブラリを読み込みます。

クラスを設定する

続いて、フォームにYubinBango.js を使用するためのclassを設定します。

<form class="h-adr">
  <input type="hidden" class="p-country-name" value="Japan">
  〒<input type="text" class="p-postal-code">
  <input type="text" class="p-region p-locality p-street-address p-extended-address">
</form>

入力フォーム全体を囲むformタグのclassには「h-adr」を指定します。このクラスを付与することで、住所の自動入力が機能します。

次のtype="hidden"を指定したinputタグは、郵便番号から表示する住所の国名です。inputタグ以外に、以下のようなspanタグでの設定も可能です。

<span class="p-country-name" style="display:none;">Japan</span>

以下は入力フォームに設定するclassの一覧です。

  • p-postal-code … 郵便番号
  • p-region … 都道府県
  • p-locality … 市区町村
  • p-street-address … 町域
  • p-extended-address … 町域以降の住所

郵便番号を入力するフォームのclassには「p-postal-code」を指定します。郵便番号の入力は、ハイフン「-」を含めた形にも対応しています。

住所を自動表示させる要素のclassには、それぞれ都道府県名「p-region」、市区町村「p-locality」、町域「p-street-address」、以降の住所「p-extended-address」を指定します。

上記のサンプルでは、「p-region」以降のクラス全てを表示用のフォームに設定することで、住所をまとめて表示させています。

適切なclassを指定することで、入力された郵便番号から、自動的に住所が補完されるようになります。

住所の表示を分割する方法

自動入力される住所を市区町村や町名で分割して異なるフォームに表示する方法です。

住所の表示箇所を分割する場合は、inputタグごとに表示したい区分のクラスを指定します。

<input type="text" class="p-region">
<input type="text" class="p-locality">
<input type="text" class="p-street-address">
<input type="text" class="p-extended-address">

郵便番号から取得できない部分は空白となります。

以下のサンプルのように、都道府県とそれ以降の住所に分けたい場合は「p-region」と「p-locality p-street-address p-extended-address」を設定します。

<input type="text" class="p-region">
<input type="text" class="p-locality p-street-address p-extended-address">

郵便番号を分割する

郵便番号を入力するフォームを、3桁と4桁に分ける方法です。

郵便番号の入力フォームを分割する場合は、classに「p-postal-code」を指定したinputタグを2つ用意します。

<input type="text" class="p-postal-code" maxlength="3">
<input type="text" class="p-postal-code" maxlength="4">

入力フォームには、maxlength属性で入力できる最大文字列長を指定しています。

複数の住所入力を実装する方法

1つのフォーム内で、複数の住所入力フォームを実装する方法です。

複数の入力フォームに住所の自動入力を設定したい場合は、formタグのclassに指定した「h-adr」を、それぞれの住所入力フォームを囲むdivタグに指定します。

<form>
  <p>住所入力1</p>
  <div class="h-adr">
    <input type="hidden" class="p-country-name" value="Japan">
    〒<input type="text" class="p-postal-code">
    <input type="text" class="p-region p-locality p-street-address p-extended-address">
  </div>
  <p>住所入力2</p>
  <div class="h-adr">
    <input type="hidden" class="p-country-name" value="Japan">
    〒<input type="text" class="p-postal-code">
    <input type="text" class="p-region p-locality p-street-address p-extended-address">
  </div>
</form>

formタグにはクラスを指定せずに、住所の入力フォーム部分を囲むそれぞれのdivタグに「h-adr」を指定することで複数の入力フォームで住所の自動入力が機能します。

Share on
関連記事
GSAPのScrollTriggerで横スクロールを実装する方法
GSAPのScrollTriggerで横スクロールを実装する方法
console.logでJavaScriptのオブジェクトの値を表示する方法
console.logでJavaScriptのオブジェクトの値を表示する方法
PuTTYの超基礎的使い方まとめ
PuTTYの超基礎的使い方まとめ