/* 地名検索ウィンドウ表示 */ function setAddressSettings(retObj) { // コード入力時に候補に該当があれば、名称をセットする retObj.find('.zip>input.zipcode').on('change', function(event){ if (jQuery(this).val() != "") { var ZipCode = convZipCode(jQuery(this).val(), 'hyphened'); jQuery(this).val(ZipCode); getAddress(ZipCode, retObj); } }); retObj.find('.zip>input.zipcode').on('blur', function(event){ if (jQuery(this).val() != "" && retObj.find('input.addr1').val() == '') { getAddress(jQuery(this).val(), retObj); } }); // 住所クリア retObj.find('.clear-btn').on('click', function(event){ event.stopPropagation(); var parentObj = retObj.closest('li.location'); clearAddress(parentObj); parentObj.find('input.zipcode').focus(); }); } // 地名選択リストの生成 function getAddress(searchStr, retObj) { var retData = {list: []}; // ZipCloudから検索 getZipCloud(searchStr).done(function(data) { if (data.status == 200) { jQuery.each(data.results, function(index, elem) { retObj.find('input.zipcode').val(convZipCode(elem.zipcode, 'hyphened')); retObj.find('select.pref').find('option').filter(function(index){ return $(this).text() === elem.address1; }).prop('selected', true); retObj.find('input.addr1').val(elem.address2 + elem.address3).change(); return true; }); } }); } // 住所入力項目クリア function clearAddress(parentObj) { parentObj.find('input.zipcode').val(''); parentObj.find('select.pref').find('option').prop('selected', false); parentObj.find('input.addr1').val('').change(); } // ZipCloud APIからデータ取得 function getZipCloud(zipcode) { var tempcode = convZipCode(zipcode); return jQuery.ajax({ type: "GET", url: '/jss/get-zip-cloud', dataType: 'json', data: {zip:tempcode}, async:false, cache: false, timeout: 10000 }); }