yubinbangoというJSライブラリを使ってみました。
使い方は下の通りです、命名ルールに沿ってクラス名をつければ郵便番号を補完してくれるようになります。
<html> <head> <script src="https://yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script> </head> <body> <form class="h-adr"> <span class="p-country-name" style="display:none;">Japan</span> <input type="text" class="p-postal-code" size="8" maxlength="8"><br> <input type="text" class="p-region p-locality p-street-address p-extended-address" /><br> </form> </body> </html>
更に郵便番号入力フォームが2つに分かれていたり、住所が複数フォームに分かれている場合にも対応しているようです。