【Rails4】【bootstrap3】郵便番号から住所検索する。
環境
Rails 4.1.8
Bootstrap3
ソースコード
郵便番号検索には「AjaxZip3」というライブラリを使用した。
AjaxZip3の使い方 | Webサイト制作支援 | ShanaBrian Website
HTML(一部抜粋)
<script src="https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3-https.js" charset="UTF-8"></script> <div class="form-group"> <%= f.label :zipcode, "郵便番号/住所", :class => 'control-label col-md-2' %> <div class="controls col-md-3"> <div class="input-group"> <span class="input-group-addon">〒</span> <%= f.text_field :zipcode, :class => 'form-control', id:'zipcode_field' %> <span class="input-group-btn"> <button id="search_from_zipcode" class="btn btn-default" type="button" onclick="AjaxZip3.zip2addr('order[zipcode]','','order[address]','order[address]');", data-original-title="<%= t('messages.search_address') %>"> <span class="glyphicon glyphicon-search"></span> </button> </span> </div> </div> <div class="controls col-md-6"> <%= f.text_field :address, :class => 'form-control' %> </div> </div>
$ -> $('#zipcode_field').on("focus", (event) -> $('#search_from_zipcode').tooltip('show', { animation : false, placement : 'top', trigger : 'manual' }); );
AjaxZip3.zip2addr について
引数は次の通り。セレクタはすべてname属性で。
(郵便番号(全てまたは上3桁),郵便番号(下4桁),都道府県,市区町村,丁目番地,町域大字)
AjaxZip3の使い方 | Webサイト制作支援 | ShanaBrian Website
ツールチップについて
bootstrapのtooltipを使用。
ツールチップのトリガーとなる要素とツールチップを出したい要素が異なったので、イベントをキャッチしてmanualでtooltipを'show'している。
また、tooltipのオプションは要素内のdata属性でも指定できる。
上記のコードでは'data-original-title'でメッセージを個別に定義している。
Twitter Bootstrap使い方-javascript-v2.0.4