2007-07-22

Postal Lookup Plugin for jQuery 1.1.2

Postal Lookup Plugin は Postal Search Ajax APIPostal.Lookup クラス を jQuery プラグインにラップしたものです。Postal Lookup Plugin を使うと Postal.Lookup クラスが持つ「郵便番号から住所を検索する」機能を jQuery らしくメソッドチェーンの中で利用できます。

郵便番号から住所を検索するときは lookup メソッドを使います。lookup メソッドの引数には郵便番号とコールバック関数を指定します。lookup メソッドはその中で Postal.Lookup クラスをを使って郵便番号から住所を検索し、その結果をコールバック関数を使って伝えます。このときの検索は非同期です。

コールバック関数の引数は検索結果とステータスコードです。検索結果は Postal.Lookup クラス の response プロパティに対応します。郵便番号から住所が見つからないときは空の配列になります。ステータスコードは Postal.Lookup クラス の status プロパティに該当します。エラーが発生したときは 200 以外の値になります。

Postal Lookup Plugin for jQuery ダウンロード
/*
* Postal Lookup Plugin for jQuery 1.1.2
*
* Copyright(C) 2007 LEARNING RESOURCE LAB.
* http://postal-search-apis-and-solutions.blogspot.com/
*
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*/
(function($) {

// $.lookupSettings
$.lookupSettings = {
timeout: 30
};

// $.lookupSetup
$.lookupSetup = function(settings) {
jQuery.extend($.lookupSettings, settings);
};

// $.lookup
$.lookup = function(c, fn) {
var lookup = new Postal.Lookup($.lookupSettings);
lookup.onload = function() {
fn(lookup.response, lookup.status);
};
lookup.onerror = function() {
fn([], lookup.status);
};
lookup.send(c) || setTimeout(function() {
fn([], 200);
}, 10);
};

// lookup
$.fn.lookup = function(c, fn) {
var self = this;
$.lookup(c, function() {
self.each(fn, arguments);
});
return self;
};

})(jQuery); // function($)
次のサンプルは郵便番号 160-0021 の住所を検索するものです。はじめに検索中を表す loading ... というテキストを表示し、その後 lookup メソッドを使って郵便番号から住所を検索しています。住所が見つかったときは、前述の loading... を上書きして住所を表示しています。

Postal Lookup Plugin for jQuery サンプル
<div id="r"></div>

<script type="text/javascript" src="http://developmentor.lrlab.to/postal/js/postalua.js?"></script>
<script type="text/javascript" src="jquery.lookup.js"></script>
<script type="text/javascript">
//<![CDATA[
jQuery(function($) {
$('#r')
.text('Loading ...')
.lookup('160-0021', function(response) {
if (response.length > 0) {
var addr = response[0];
$(this).text(addr.a);
}
});
});
//]]>
</script>
検索のタイムアウトを長くするときは $.lookupSetup メソッドを使います。タイムアウトの初期値は30秒です。通常は変更せずそのまま使います。$.lookupSetup メソッドは Postal.Lookup クラス のコンストラクタのオプションに対応します。
$.lookupSetup({
timeout: 180
});
Postal Lookup Plugin は 2007年8月上旬から Postal Search Ajax API に含めて配布します。それまでは Postal Lookup Plugin をダウンロードしてお使いください。Postal Lookup Plugin のライセンスは jQuery と同じにしておきます。

0 件のコメント: