GithubHelp home page GithubHelp logo

yubinbango's Introduction

YubinBangoについて

これまでにない設定方法(なんとclassを指定するだけ!)のまったく新しいライブラリが誕生いたしました!
このYubinBangoライブラリの革新的な設定方法は今は特殊に感じるかも知れませんが、10年以内にこれが当たり前になっていることでしょう。

背景

設置後の郵便番号データの更新作業から解放される革新的なライブラリajaxzip3の公開から8年。Google Codeの閉鎖の告知とともにGithubに移行しましたが、これを機にTypescriptの新しいコードベースに移行することに。さらに郵便番号データの更新をGithub Actionsで自動化いたしました。
新しいコードは基本機能のみを抽出したCoreモジュールと、これまでのajaxzip3と互換性を保つためのモジュール、さらにまったく新しいYubinBangoライブラリの3つのモジュールと、Coreライブラリから参照される郵便番号データで構成されています。コードを見直すことによりさらに軽量化いたしました。 もちろん郵便番号が全角数字で入力された場合は半角数字に自動変換します。ハイフンが入力されても動作します。

YubinBangoの設定方法

今度の郵便番号検索ライブラリは、なんとclassを指定するだけ!
下記のようにmicroformats2の標準仕様に合わせたclassを記載をするだけで郵便番号検索機能が有効になります。

    <script src="https://yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>
    <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>

その他の設定方法

住所欄を分ける場合は下記のようにします。

    <form class="h-adr">
      <span class="p-country-name" style="display:none;">Japan</span><input type="text" class="p-postal-code" size="3" maxlength="3">
      <input type="text" class="p-postal-code" size="4" maxlength="4"><br>

      <input type="text" class="p-region" readonly /><br>
      <input type="text" class="p-locality" readonly /><br>
      <input type="text" class="p-street-address" /><br>
      <input type="text" class="p-extended-address" />
    </form>

YubinBangoライブラリを有効にするには?

YubinBangoが有効になる条件は下記の通りとなります。

  1. scriptタグでYubinBangoライブラリが読み込まれていること
    例: <script src="https://yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>
  2. formタグのclass指定の中に h-adr が含まれていること
    例: <form class="h-adr">
  3. form中で、国名(p-country-name) が Japan に指定されていること
    例1: <span class="p-country-name" style="display:none;">Japan</span>
    例2: <input type="hidden" class="p-country-name" value="Japan">
  4. 郵便番号入力欄のclass指定の中に p-postal-code が含まれていること
    例1: 〒<input type="text" class="p-postal-code" size="8" maxlength="8">
    例2: 〒<input type="text" class="p-postal-code" size="3" maxlength="3"><input type="text" class="p-postal-code" size="4" maxlength="4">
  5. 住所欄のclass指定の中に、都道府県名(p-region)、市町村区(p-locality)、町域(p-street-address)、以降の住所(p-extended-address) がそれぞれ含まれていること

yubinbango's People

Contributors

koba-ninkigumi avatar xsota avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yubinbango's Issues

商用利用について

コードライセンスはMITとなっていますが、商用での利用は可能でしょうか?
商用での利用にあたり、制限事項などがあれば教えてください。

よろしくお願いいたします。

mobileブラウザで動作しない

mobileブラウザで動作が確認できませんでした。
以下に再現動画を添付しましたので、ご確認していただけると幸いです。

再現環境

iPhone6のsafari

再現動画

PC / safari

Mobile / safari

動的に追加されたクラスでは動作しない?

javasciptで後から動的に追加したclass="h-adr"では動作しませんか?
生成されたコードをそのままコピペで貼ったところ動作しましたが、
動的に生成したものでは動きませんでした。

動的に表示されたフォームでの利用

通常のHTML読み込み後には動作したのを確認後(なので設定等は問題無いと思います)に、

TwitterのCSSフレームワークBootstrapでのModalに、
Ajaxで動的にフォームを表示させるケースで使うと動作しません。

Ajaxで動的に表示したフォームに対してyubinbangoを動かすために、
意図的なyubinbangoの初期化処理等はできますか?

ライセンスの表記につきまして

設定方法に記載されいている以下のステートメントをWebサイト内に記述して、
yubinbangoを使わせていただきたく思います。

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

GithubのリポジトリにMITライセンスと掲示してくださっていますが、
設定方法に紹介されているURL(https://yubinbango.github.io/yubinbango/yubinbango.js)のコードには、
ライセンスの表記がありませんでした。

自分のプロジェクト内のファイルにライセンスの表記を入れる必要がございますか?
それともURLから情報を辿れるので、ライセンスの表記は不要でしょうか?

TypeError: r[(r.length - 1)] is undefined

フォームを変更して p-postal-code などを削った時に h-adr と p-country-name をそのままにしてしまっていたところ、postalcode[postalcode.length - 1].addEventListener(...) がエラーになっていました。
なので、addEventListener を呼び出す前に postalcode の要素数チェックを入れた方が良いのではないでしょうか。

Not working when I add a form through Ajax

The plugin is not working when the form is getting added via Ajax.

How can I reinitiate the events?

I have tried using the below code as well but no luck,

document.addEventListener("DOMContentLoaded", function() {
    new YubinBango.MicroformatDom
}, !1);

複数の住所入力

一つのフォームに複数の住所を入力するケースへの対応予定はありますか?
(例えば、送付先と請求書先に違う住所を入力する場合など)

ビルド方法を教えてください

すばらしいライブラリなので一部改造して使用したいのですが、コンパイルすると以下のエラーが出ます。

yubinbango.ts(37,22): error TS2339: Property 'Core' does not exist on type 'typeof YubinBango'.

また、protractor のテストもすべて失敗します。

TypeScript 2.7.2 で試しましたが、1.8 に落としても同じです。というか、minify は抜きにしても tsc の出力と一致していないようで、独力での解決が難しそうです。

正しいビルド方法を教えていただけないでしょうか。

郵便番号796-0088の問題

郵便番号を入力すると正しい住所が
セットされない。

郵便番号:796-0088

愛媛県八幡浜市八幡浜市と表示される

本来は、愛媛県八幡浜市の次にはすぐに番地になる。
郵便局のサイトで確認すると、正しい表示になっているんですが。

Turbolinksとの共存

Railsフレームワーク内で利用させていただいています。

上記のturbolinksという機能で、ページを遷移後にpage:loadというイベントが発火するので、
以下の用に設定してみましたが、動作しません。
(以下の関数内の処理は実行されていることは確認しています。)

$(document).on('page:load', function() {
  new YubinBango.MicroformatDom();
});

turbolinksはbodyタグ内のDOMのみを入れ替える機能を持っています。
解決策はありますでしょうか。

元のソースの取得中にエラーが発生しました

Yubinbango.jsを導入し、数日前までは正常に動作していたのですが、突然郵便番号を入力しても自動で住所が入力されなくなってしまいました。h-adrを始めとするクラス周りの記入については確認済みです。

火狐の開発ツールで調べてみたところ、yubinbango-core.tsにて
元のソースの取得中にエラーが発生しました: can't assign to property "metadata" on "request failed with status 404": not an object ソース URL: <unknown>
というエラーが生じていました。 yubinbango.js及びtsは正常に読み込まれていました。

404エラーであり自分の環境が原因かどうかも分からないためIssueを投げさせて頂くことにしました。よろしくお願いいたします。

特定の郵便番号を入力すると404エラーが起きる

いつもお世話になっております。
普段からYubinbangoを利用させていただいております。

1点、以下をご確認いただきたいです。

最初の3桁に存在しない郵便番号を入れた際に、404エラーが発生する

以下再現した事項

  • 9998888を入力する
    • エラーは発生せず「都道府県」「市区町村」「町域以下」に空白が挿入される
  • 1222222を入力する
    • Yubinbangoライブラリ内で404エラーが発生

こちらの理由がもしわかればご教示いただけますと幸いです。
よろしくおねがいいたします。

GoogleMapが消えてしまう

サイトの問い合わせフォームでyubinbango.jsを利用しています。
問題なく設置できたのですが、同じページに置いているGoogleMapsが消えてしまうようになりました。
yubinbango.jsの読み込みをやめると、表示されます。
GoogleMapsはAPIを呼び出して、JSで表示させています。

yubinbango.jsとGoogleMapsを同居させることはできないのでしょうか?

複数町域にまたがる郵便番号の扱いについて

複数町域にまたがる郵便番号を入力した場合、とある1つの町域の住所がセットされますが、この優先順位はどのようになっているのでしょうか?
どの町域をセットするか、選択できるようになるご予定などはありますでしょうか…?
(参考:http://qiita.com/khirose/items/3a121656425fac7bb820)

例1) 452-0961
愛知県 清須市 春日明河原
愛知県 清須市 春日一番割
愛知県 清須市 春日壱屋敷
愛知県 清須市 春日一本松
愛知県 清須市 春日稲荷
愛知県 清須市 春日杁前
愛知県 清須市 春日午
愛知県 清須市 春日落合
(以下略)

例2) 618-0000
京都府 乙訓郡大山崎町
大阪府 三島郡島本町

適用が有効な要素は'input' だけですか?

はじめまして。
早速本題ですが、Drupal というCMSに導入できるか試して見ました。
それぞれの要素に指定のclass を付加し、いざ入力!
しかし、結果は失敗。。

国名, 都道府県名 がリスト選択形式で、"div"要素でした。
郵便番号, 市町村, 他住所 は入力形式で、"input"要素でした。

このスクリプトは後者の"inputo"要素のみに適用されるものなのでしょうか。。
ならば早々に諦めがつくのですが。

ライセンスについて

こちらのソースコードのライセンスはどちらにあるのでしょうか?

ライセンスを示していただけると幸いです。
よろしくお願いいたします。

ctrl + c実行時、「市区町村」「番地」の入力情報が消えてしまう。

■概要
郵便番号を選択肢、ctrl+cを実行すると、「市区町村」「番地」の入力情報が消えてしまいます。

■再現方法
郵便番号、都道府県、市区町村、番地が入力された状態で、
ctrl + A → ctrl + Cを行うと、
「市区町村」「番地」の入力情報が消えてしまいます。

■考えられる原因
keyup イベントをトリガーにしているようであるため、
ctrl + cを除外してあげるのがいいかと思います。

想定される原因の対象箇所
https://github.com/yubinbango/yubinbango/blob/gh-pages/yubinbango.ts#L20

ローマ字対応は難しいでしょうか

住所入力が必要なときに便利に使わせていただいてます。
今回非日本語人さん向けに必要になったのですが、ローマ字表記への対応をしていただくことは難しいでしょうか。
p-locality だったら日本語 p-locality-en だったらローマ字というような。
ご検討頂けると嬉しいです
      [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.