問い合わせフォームなどで、住所の入力をする際に、郵便番号を入れると都道府県と市区町村名+町名(×丁目の手前まで)が自動入力されるしくみはいろいろなものがあるが、従来のタイプだと、郵便番号と住所の変換テーブルを手元に持っておく必要があり、日本郵便のサイトでken_all.csvをダウンロードしてきてDBに入れて…とやっていたが、Google map APIを使って住所データを持ってきてしまう方法があった。
郵便番号→住所 変換スクリプト(google maps API 使用)
上記のスクリプトで簡単に実現できる。しかしこのコードのままだと、不完全なまたは存在しない郵便番号を入力すると、日本以外の住所を返してくるため、除外する必要がある。
success : function(resp){
if(resp.status == "OK"){
var obj = resp.results[0].address_components;
var adrSize = obj.length -1;
if (obj[adrSize].short_name != "JP") return false; //この行を追加
switch(cb){
case true: // コールバック関数があるとき
日本以外の住所を返したときは、return falseする。
呼び出し側は、以下のようにして、blurだけでなく、keyupでも動くようにする。
$(function () { $("#pcode").bind("blur keyup", function() { $.fn.zip2adr($(this).val(), function(resp) { $("#pref").val(resp.pref); $("#city").val(resp.below); }); }); });