2021-02-17
yubinbango.jsの動作確認

郵便番号から住所を自動入力するには、
yubinbango.js(https://github.com/yubinbango/yubinbango)
が便利なので使う方が多いと思います。
都道府県はセレクトボックスにしたい場合は、どうするのだろうと思って、
(都道府県情報にエリア情報なども付加してDBで管理していたので、その情報からセレクトボックスを使いたかった)
yubinbango.jsのスクリプトをDLしてどこで設定すればいいのか確認してみました。
(後で分かったのですが、たんにセレクトボックスにするだけなら、
“都道府県のselectボックスのclass属性を “p-region” から “p-region-id” に変更する”
だけで対処できるみたいでした。)
せっかくスクリプトの動作について調べたので書いておきます。
各クラスに値を入れているところは、
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についても同じように処理しているのだから、その時に気付けばよかったですが。