郵便番号変換について

最近使い始めました、スクリプト関係はまだよくわからないことが多く勉強中です。
郵便番号からの住所変換を検索してajaxzip3関連のHPを見たのですが、これをkintoneで使用することはできるのでしょうか。
又 同様のことはどうすればいいのでしょうか。
よろしくお願いします。

Umemoto様

私は、例えば、下のようなスクリプトを作って対処しています。
郵便番号APIは、ajaxzip3ではありませんが。

Field Codeは、以下のようになっています。

ZIPCODE … 郵便番号「xxx-xxxx」
ADDRESS1 … 都道府県
ADDRESS2 … 市区町村以下の住所
TRIGGER … jQueryで ZIPCODE フィールドを取得するため、ZIPCODEフィールドの直後に置いた空白のSPACE

ややトリッキーなので、もっと優れた方法があるかもしれませんが、
ご参考になればと思います。

(function(kintone, $){
if (typeof $ === “undefined”) throw “このスクリプトは、jQuery を必要としています!”;
var zip2add = function(zipcode){
var d = new $.Deferred;
kintone.proxy(‘http://api.zipaddress.net/?zipcode=’ + zipcode, ‘GET’, {}, {}, function(body, status, headers) {

var json = body.replace(/^\s+|\s+$/g,‘’);
var result = JSON.parse(json);

if (result.code >= 200 && result.code < 300) {
var data = result.data;
var address = {“prefecture”:data.pref, “city”:data.address};
d.resolve(address);
} else {
d.reject(result.message);
}
});
return d.promise();
};
var addHyphen = function(zipcode){
var m = zipcode.match(/^(\d{3})(\d{4})/);
if (m)
return m[1] + “-” + m[2];
return zipcode;
};
var setAddressByZipcode = function(zipcode_trigger_space_id, field_code_zip, field_code_prefecture, field_code_address){
var space = $(kintone.app.record.getSpaceElement(zipcode_trigger_space_id));
var input_zip = space.closest(“.control-etc-gaia”).prev(“.control-gaia”).find(“input.input-text-cybozu”);
input_zip.on(“change”, function(){
var zipcode = input_zip.val();
var address = zip2add(zipcode)
.done(function(address){
console.log(“Address is obtained by zipcode "” + zipcode + "": ", address);
var record = kintone.app.record.get();

record[“record”][field_code_zip][“value”] = addHyphen(zipcode);
record[“record”][field_code_prefecture][“value”] = address.prefecture;
record[“record”][field_code_address][“value”] = address.city;
kintone.app.record.set(record);
})
.fail(function(e){
throw e;
});
});
};

kintone.events.on([“app.record.create.show”,“app.record.edit.show”], function(event){
setAddressByZipcode(“TRIGGER”, “ZIPCODE”, “ADDRESS1”, “ADDRESS2”);
});
})(kintone, jQuery);

Shinji Umemoto様
cstapの落合です。

以下、郵便番号からの住所変換のサンプルになります。

仕様

  • 郵便番号-住所検索APIを利用して変換処理を行う
  • 郵便番号フィールドの変更時イベントで非同期処理で変換する
  • レコード新規登録&編集の保存実行時イベントで同期処理で変換する
  • 非同期処理には、kintone.proxyを使う
  • 同期処理には、jQuery ajaxを使う

JavaScript

/**
 * 郵便番号:zipcode(文字列フィールド)
 * 住所:address(文字列フィールド)
 *
 * 参考:http://zipaddress.net/
 */
(function() {
  "use strict";

  var events = [
    'app.record.edit.submit',
    'app.record.create.submit'
  ];

  document.write('<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>');

  // 郵便番号変更時のイベント
  kintone.events.on('app.record.create.change.zipcode', function(event) {
    var zipcode = event.record.zipcode.value;

    // kintone.proxyで非同期処理
    kintone.proxy(
      'https://api.zipaddress.net/?zipcode=' + zipcode,
      'GET',
      {},
      {},
      function(body) {
        var response = JSON.parse(body);
        var record = kintone.app.record.get();
        record.record.address.value = response.data.fullAddress;
        kintone.app.record.set(record);
      },
      function(body) {
        alert('郵便番号から住所の検索に失敗しました');
      }
    );

    return event;
  });

  // submit実行時のイベント
  kintone.events.on(['app.record.edit.submit', 'app.record.create.submit'], function(event) {
    var record = event.record;
    var zipcode = record.zipcode.value;

    // jQuery ajaxで同期処理
    $.ajax({
      url: '//api.zipaddress.net/?zipcode=' + zipcode,
      dataType: 'json',
      async: false,
      success: function(response) {
        record.address.value = response.data.fullAddress;
      },
      error: function(response) {
        alert('郵便番号から住所の検索に失敗しました');
      }
    });

    return event;
  });
})();

以上、参考になりますでしょうか?

ありがとうございます。
さっそくトライしてみます。