ホームページ制作/SEO対策なら株式会社サイバーブレーンへ

 03-5961-5681 平日10:00~19:00

 2021-02-17

yubinbango.jsの動作確認

郵便番号から住所を自動入力するには、
yubinbango.js(https://github.com/yubinbango/yubinbango)
が便利なので使う方が多いと思います。

都道府県はセレクトボックスにしたい場合は、どうするのだろうと思って、
(都道府県情報にエリア情報なども付加してDBで管理していたので、その情報からセレクトボックスを使いたかった)
yubinbango.jsのスクリプトをDLしてどこで設定すればいいのか確認してみました。

(後で分かったのですが、たんにセレクトボックスにするだけなら、

“都道府県のselectボックスのclass属性を “p-region” から “p-region-id” に変更する”

引用元:郵便番号の自動入力「YubinBango.js」の使い方と都道府県コードを使う方法

だけで対処できるみたいでした。)

せっかくスクリプトの動作について調べたので書いておきます。
各クラスに値を入れているところは、

t.prototype.D = function (t, n, e) {
var r = {
"p-region-id": e.k,
"p-region": e.region,
"p-locality": e.l,
"p-street-address": e.m,
"p-extended-address": e.o
}, o = n.querySelectorAll("." + t);

となっている後で、

[].map.call(o, function (n) {
n.value += r[t] ? r[t] : "";

という所でした。
なので、

function changePref(pref_id){
document.getElementById("user_pref_select").selectedIndex = pref_id;
}

として、
[].map.call(o, function (n) {
の処理時に、一緒に、

if(o.item(0).className == 'p-region'){
changePref(e.k);
}

としてあげて対応しました。
p-region-idについても同じように処理しているのだから、その時に気付けばよかったですが。

~この記事の著者~

サイト制作に関するご相談はこちら

 03-5961-5681 平日10:00~19:00

メールフォーム

あなたが
サイトに
求める要素
あなたがサイトに求める0要素