// ↓↓↓ 2017.04.12 Add TerraSight var minage = 20; var maxage = 84; // ページロード時に実行される内容 $(document).ready(function(){ var typepass = $('input[name=typepass]').val(); if(typepass=="support") { minage = 20; maxage = 84; } else if(typepass=="sougi1" || typepass=="sougi2") { minage = 40; maxage = 84; } else if(typepass=="sougi3") { minage = 40; maxage = 79; } else if(typepass=="kaigo") { minage = 40; maxage = 84; } else { //minage = 20; maxage = 74; minage = 20; maxage = 79; // 2020.08.06 新規加入年齢変更(79歳まで) } // 画面表示時は年齢エラー欄非表示 $("#Birth_error").hide(); // チェック0ボタン群クリック $('input[name=Start_Check0]').click(function(){ updateAvater(); }); // チェック1ボタン群クリック $('input[name=Start_Check1]').click(function(){ updateAvater(); }); // チェック2ボタン群クリック $('input[name=Start_Check2]').click(function(){ updateAvater(); }); // チェック3ボタン群クリック $('input[name=Start_Check3]').click(function(){ updateAvater(); }); // 郵便番号:入力 $('input[name=OrderInput_K_Postal1]').keyup(function(){ //updateAvater(); if($('input[name=OrderInput_K_Postal1]').val().length==3 && $('input[name=OrderInput_K_Postal2]').val().length==4) { setTimeout(updateAvater, 0); } }); // 郵便番号:入力 $('input[name=OrderInput_K_Postal2]').keyup(function(){ //updateAvater(); if($('input[name=OrderInput_K_Postal1]').val().length==3 && $('input[name=OrderInput_K_Postal2]').val().length==4) { setTimeout(updateAvater, 0); } }); // 職業リスト選択 $('#Business').change(function(){ updateAvater(); }); // 性別ボタン群クリック $('input[name=Sex]').click(function(){ updateAvater(); }); // // 都道府県:選択 // $('#Pref').change(function(){ // updateAvater(); // }); // 結婚ボタン群クリック $('input[name=Marriage]').click(function(){ updateAvater(); }); // こどもボタン群クリック $('input[name=Child]').click(function(){ updateAvater(); }); // 年、月、日リストボックス初期化+動的に内容が変わるようにする initBirthListBox('#Birth_Year', '#Birth_Month', '#Birth_Day', '#Birth_man_age'); // 郵便番号自動入力:郵便番号から住所を自動入力させる為の設定 $('#Postal1').zip2addr( { zip2:'#Postal2', pref:'#Pref', addr:'#City' }); $('#spgoadvice').click(function(){ var form = $('#estimateform'); $('').attr({ 'type': 'hidden', 'name': 'Go_Advice', 'value':'true' }).appendTo(form); form.submit(); }); $('#spgoplanselect').click(function(){ var form = $('#estimateform'); $('').attr({ 'type': 'hidden', 'name': 'Go_PlanSelect', 'value':'true' }).appendTo(form); form.submit(); }); // 入力チェックの設定 $("#estimateform").validate( { ignore:[], invalidHandler: function(event, validator){ var errors = validator.numberOfInvalids(); if(errors){ $('#ErrorTitle').show(); } }, submitHandler: function(form) { // $('#Pref').val(""); // $('#City').val(""); // $('input[name=OrderInput_K_Postal1]').change(); form.submit(); }, groups :{ Postal :"OrderInput_K_Postal1 OrderInput_K_Postal2", }, rules : { OrderInput_K_Postal1: { required: true, number: true, minlength: 3 }, OrderInput_K_Postal2: { required: true, number: true, minlength: 4 } }, messages:{ OrderInput_K_Postal1: { required: jQuery.format("郵便番号を入力してください。"), number: jQuery.format("郵便番号1は半角数字となります。"), minlength: jQuery.format("郵便番号1は{0}桁となります。") }, OrderInput_K_Postal2: { required: jQuery.format("郵便番号を入力してください。"), number: jQuery.format("郵便番号2は半角数字となります。"), minlength: jQuery.format("郵便番号2は{0}桁となります。") } }, errorPlacement: function(error,element) { // (入力フィールドの)name+’_err’のidをもつlabelに出力 var name = element.attr("name"); if(name==="OrderInput_K_Postal1" || name==="OrderInput_K_Postal2") { $('#K_Postal_err').html(''); error.appendTo($('#K_Postal_err')); } else { $('#'+ element.attr('id') + '_err').html(''); error.appendTo($('#'+ element.attr('id') + '_err')); } } }); // フォーム内のEnterキーでのsubmitを抑止する $("#estimateform").keypress(function(ev) { if ((ev.which && ev.which === 13) || (ev.keyCode && ev.keyCode === 13)) { return false; } else { return true; } }); }); $.fn.isVisible = function() { return $.expr.filters.visible(this[0]); }; // アバター欄表示更新処理 function updateAvater() { var typepass = $('input[name=typepass]').val(); var isCheck0_Yes = false; var isCheck0_No = true; var isCheck1 = $('input[name=Start_Check1]:checked').val()==="Yes"; var isCheck2 = $('input[name=Start_Check2]:checked').val()==="Self"; var isCheck3 = $('input[name=Start_Check3]:checked').val()==="Check3_Yes"; var age = $('#Birth_man_age').val(); var postal1 = $('input[name=OrderInput_K_Postal1]').val(); var postal2 = $('input[name=OrderInput_K_Postal2]').val(); // var isPostal = postal1.length==3 && postal1.match(/^[0-9]+$/) // && postal2.length==4 && postal2.match(/^[0-9]+$/); var isPostal = postal1.length==3 && postal2.length==4; var business = $('#Business').val(); var isBusiness = business!==""; var isMan = $('input[name=Sex]:checked').val()==="1"; var isWoman = $('input[name=Sex]:checked').val()==="2"; var showavater; if(typepass=="support") { var isage = age>19 && age<85; var isMarriage = $('input[name=Marriage]:checked').val()==="1" || $('input[name=Marriage]:checked').val()==="2"; var isChild = $('input[name=Child]:checked').val()==="1" || $('input[name=Child]:checked').val()==="2"; showavater = isage && isPostal && isBusiness && (isMan || isWoman) && isMarriage && isChild; isCheck0_Yes = $('input[name=Start_Check0]:checked').val()==="Yes"; isCheck0_No = $('input[name=Start_Check0]:checked').val()==="No"; } else if(typepass=="sougi1" || typepass=="sougi2" || typepass=="sougi3") { var isage = age>39 && age<85; showavater = isage && isPostal && isBusiness && (isMan || isWoman); } else if(typepass=="kaigo") { var isage = age>39 && age<85; showavater = isage && isPostal && isBusiness && (isMan || isWoman); } else { //var isage = age>=19 && age<75; var isage = age>=19 && age<80; // 2020.08.06 新規加入年齢変更(79歳まで) showavater = isage && isPostal && isBusiness && (isMan || isWoman); } // 年齢が範囲内&性別選択している場合は対応するアバタースタイルを設定。 // 年齢範囲外、または性別非選択の場合はアバター欄非表示 if(showavater) { if(isMan) { if(age<30) { updateAvatarClass("male20"); } else if(age<40) { updateAvatarClass("male30"); } else if(age<50) { updateAvatarClass("male40"); } else if(age<60) { updateAvatarClass("male50"); } else if(age<70) { updateAvatarClass("male60"); } else if(age<80) { updateAvatarClass("male70"); } else if(age<85) { updateAvatarClass("male80"); } else { $('#Notice1').hide(); $('#Notice2').hide(); $('#AvatarBox').hide(); } } else if(isWoman) { if(age<30) { updateAvatarClass("female20"); } else if(age<40) { updateAvatarClass("female30"); } else if(age<50) { updateAvatarClass("female40"); } else if(age<60) { updateAvatarClass("female50"); } else if(age<70) { updateAvatarClass("female60"); } else if(age<80) { updateAvatarClass("female70"); } else if(age<85) { updateAvatarClass("female80"); } else { $('#Notice1').hide(); $('#Notice2').hide(); $('#AvatarBox').hide(); } } else { $('#Notice1').hide(); $('#Notice2').hide(); $('#AvatarBox').hide(); } } else { $('#Notice1').hide(); $('#Notice2').hide(); $('#AvatarBox').hide(); } if(showavater && (isCheck0_Yes || isCheck0_No) && isCheck1 && isCheck2 && isCheck3) { $('button[name=Go_Advice]').prop('disabled', false); $('button[name=Go_PlanSelect]').prop('disabled', false); } else { $('button[name=Go_Advice]').prop('disabled', true); $('button[name=Go_PlanSelect]').prop('disabled', true); } } // アバター画像表示更新処理 function updateAvatarClass(classname) { // $("#Pref").val(""); // $("#City").val(""); // $('#Pref').change(); // アバター欄表示する $('#Notice1').show(); $('#Notice2').show(); $('#AvatarBox').show(); // 一旦全てのアバタースタイルクラスを取り除き $('#AvatarImage').removeClass("male20"); $('#AvatarImage').removeClass("male30"); $('#AvatarImage').removeClass("male40"); $('#AvatarImage').removeClass("male50"); $('#AvatarImage').removeClass("male60"); $('#AvatarImage').removeClass("male70"); $('#AvatarImage').removeClass("male80"); $('#AvatarImage').removeClass("female20"); $('#AvatarImage').removeClass("female30"); $('#AvatarImage').removeClass("female40"); $('#AvatarImage').removeClass("female50"); $('#AvatarImage').removeClass("female60"); $('#AvatarImage').removeClass("female70"); $('#AvatarImage').removeClass("female80"); // 指定されたアバタースタイルクラスを設定する $('#AvatarImage').addClass(classname); $('input[name=Hidden_AvatarClass]').val(classname); var typepass = $('input[name=typepass]').val(); var business = $('#Business option:selected').text(); var isMan = $('input[name=Sex]:checked').val()==="1"; var isWoman = $('input[name=Sex]:checked').val()==="2"; var sex; if(isMan)sex="男性"; else if(isWoman)sex="女性"; var age = $('#Birth_man_age').val(); var birth = Number($('#Birth_Year').val()) + "年" + Number($('#Birth_Month').val()) + "月" + Number($('#Birth_Day').val()) + "日生まれ"; var info; var info_f = "契約年齢とは、ご契約日(毎月1日)時点の満年齢です。"; if(typepass=="support") { var pref = $("#Pref").val(); var isMarriage1 = $('input[name=Marriage]:checked').val()==="1"; var isMarriage2 = $('input[name=Marriage]:checked').val()==="2" var isMarriage = isMarriage1 || isMarriage2; var marriage; if(isMarriage1)marriage="未婚"; else if(isMarriage2)marriage="既婚"; var isChild1 = $('input[name=Child]:checked').val()==="1"; var isChild2 = $('input[name=Child]:checked').val()==="2"; var isChild = isChild1 || isChild2; var child; if(isChild1)child="こどもあり"; else if(isChild2)child="こどもなし"; info = birth + "
契約年齢" + age + "歳" + "
" + pref + " " + sex + "[" + business + "/" + marriage + "/" + child +"]"; } else if(typepass=="sougi1" || typepass=="sougi2" ) { var pref = $("#Pref").val(); info = birth + "
契約年齢" + age + "歳" + "
" + pref + " " + sex + "[" + business + "]"; } else { var pref = $("#Pref").val(); info = birth + "
契約年齢" + age + "歳" + "
" + pref + " " + sex + "[" + business +"]"; } $('#AvatarInfo').html(info + info_f); } // 生年月日リストボックスの初期化 function initBirthListBox(yearid, monthid, dayid, manageid){ // 契約年齢の基準日算出 var nowdate = new Date(); var year = nowdate.getFullYear(); var month = nowdate.getMonth(); if(month==11) { month=0; year++; } else { month++ } var basedate = new Date(year,month,1); // 生年月日から満年齢を自動算出するためのコード //$(yearid+","+monthid+","+dayid).bind("change",{year:yearid,month:monthid,day:dayid,manage:manageid},changebirthevent); var y = $(yearid).val(); var m = $(monthid).val(); // 年リストの更新 updateYearList(basedate,yearid); // 月リストの更新 updateMonthList(basedate,yearid,monthid); // 日リストの更新 updateDayList(basedate,yearid,monthid,dayid) // 年を選択ごとに日付を修正して表示 $('select'+yearid).change(function(){ updateMonthList(basedate,yearid,monthid); updateDayList(basedate,yearid,monthid,dayid); //leapYearCheck(yearid, monthid, dayid); }); // 月を選択ごとに日付を修正して表示 $('select'+monthid).change(function(){ updateDayList(basedate,yearid,monthid,dayid); //leapYearCheck(yearid, monthid, dayid); }); var year = $(yearid+"_H").val(); $(yearid).val(year); var month = $(monthid+"_H").val(); $(monthid).val(month); var day = $(dayid+"_H").val(); $(dayid).val(day); $(yearid+","+monthid+","+dayid).bind("change",{year:yearid,month:monthid,day:dayid,manage:manageid},changebirthevent); changebirth(yearid, monthid, dayid, manageid); } function updateYearList(basedate,yearid){ // 基準年-minage~基準年-maxage年まで表示 var year = basedate.getFullYear(); var minyear = year - minage; var maxyear = year - maxage-1; $(yearid).empty(); $(yearid).append(''); for(var i=minyear;i>=maxyear;i--)$(yearid).append(''); } function updateMonthList(basedate,yearid,monthid){ var y=$(yearid).val(); var m=$(monthid).val(); var year=basedate.getFullYear(); var month=basedate.getMonth(); var minyear=year-minage; var maxyear=year-maxage - 1; var minmonth=0; var maxmonth=11; if(y==('0000'+minyear).slice(-4)) { maxmonth=month; } else if(y==('0000'+maxyear).slice(-4)) { minmonth=month; } //minmonth月〜maxmonth月まで表示 $(monthid).empty(); $(monthid).append(''); for(var i=minmonth+1;i<=maxmonth+1;i++)$(monthid).append(''); if(('00'+(minmonth+1)).slice(-2)<=m && ('00'+(maxmonth+1)).slice(-2)>=m)$(monthid).val(m); else $(monthid).val(""); } //うるう年判定して日付リストボックスの中身を更新 function updateDayList(basedate,yearid,monthid,dayid){ var y = $(yearid).val(); var m = $(monthid).val(); var d = $(dayid).val(); var year=basedate.getFullYear(); var month=basedate.getMonth(); var minyear=year-minage; var maxyear=year-maxage - 1; var minday=1; var maxday=31; if(m!="") { if (y!="" && 2 == m && (0 == y % 400 || (0 == y % 4 && 0 != y % 100))) { maxday = 29; } else { maxday = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)[m - 1]; } } if(y==('0000'+minyear).slice(-4) && m==('00'+(month+1)).slice(-2)) { maxday=1; } else if(y==('0000'+maxyear).slice(-4) && m==('00'+(month+1)).slice(-2)) { minday=2; } $(dayid).empty(); $(dayid).append(''); for (var i = minday; i <= maxday; i++) { $(dayid).append(''); } if(('00'+minday).slice(-2)<=d && ('00'+maxday).slice(-2)>=d)$(dayid).val(d); else $(dayid).val(""); // $(dayid).selectmenu('refresh'); } function changebirthevent(event) { var cn_year = event.data.year; var cn_month = event.data.month; var cn_day = event.data.day; var cn_man_age = event.data.manage; changebirth(cn_year, cn_month, cn_day, cn_man_age); } function changebirth(cn_year, cn_month, cn_day, cn_man_age){ // テキストボックスから年齢文字列を取得し、Date型にする // 日付からDate型に変換しただけでは時刻がを09:00:00となり、年齢計算が正確でなくなるので、 // 時刻を00:00:00にするために2度変換している var year = $(cn_year).val(); var month = $(cn_month).val(); var day = $(cn_day).val(); var age = null; if(year=="" || month=="" || day=="") { age = null; } else { var birth = year+'/'+month+'/'+day; var nowDateTemp = new Date(birth); var nowDate = new Date(nowDateTemp.getFullYear(),nowDateTemp.getMonth(),nowDateTemp.getDate()); // 満年齢の算出 age = calculateManAge(nowDate); } // 満年齢の表示 if(age==null || age==undefined || isNaN(age) || age>120) { $(cn_man_age).val(''); $(cn_man_age+"_disp").show(); $(cn_man_age+"_show").html('-'); } else { $(cn_man_age).val(age); $(cn_man_age+"_disp").show(); $(cn_man_age+"_show").html(age); if(agemaxage){ $("#Birth_error").show(); } else { $("#Birth_error").hide(); } } updateAvater(); } /** * 満年齢を算出する */ var calculateManAge = function(birthday, targetDate){ var manAge = null; var nowdate = new Date(); var year = nowdate.getFullYear(); var month = nowdate.getMonth(); if(month==11) { month=0; year++; } else { month++ } var date = new Date(year,month,1); targetDate = targetDate || date; //targetDate = targetDate || new Date(2014,1,1,0,0,0,0); if (birthday > targetDate) {return manAge;} // 西暦差し引きで計算した値に // 年が揃えた際にbirthdayがtargetDateを超えていた場合は-1する manAge = targetDate.getFullYear() - birthday.getFullYear(); modTargetDate = new Date(birthday.getFullYear(), targetDate.getMonth(), targetDate.getDate()); if (modTargetDate < birthday) {manAge -= 1;} return manAge; }; // ↑↑↑ 2017.04.12 Add TerraSight