/********************************************* * form.js * ------------------------------------------- * @init * @plugin * @requires * - jquery.js *********************************************/ /* ------------------------------------------- * @init ------------------------------------------- */ $(function () { var u = new EPOS_FORM.Util(); $.textboxControl(); $.selectboxControl(); $.checkedControl(); $.helpControl(); $.tooltip(); $.letterCounter(); $.focusChain(); $.inputValidate(); $.entryValidate(); $.entryCustomerAddressControl(); $.entryCustomerTelControl(); $.entryWorkPlaceControl(); $.entryIncomeControl(); $.entryHomecomingAddressControl(); $.entryHomecomingAddressControl02(); $.entryCreditCashingControl(); $.entryCreditRecieptControl(); $.entryMailAddressControl2(); $.selectDesignSwitch(); $.seachShopInput(); $("#tbox_house_zip").btnColorChange(); $("#tbox_homecoming_zip").btnColorChange(); $.cationModalControl(); $.cationModalControl02(); $.cationModalControl03(); $.id_pwValidation(); $.makePasswordVisible(); $.entryDriverslicenseControl(); $.entryResidencecardControl(); $.homecomingPhoneControl02(); $.designCardOrderRadio(); $.addressValueControl(); $.entryMailAddressControl3(); $.embossCheckControl(); $.apaIdPass(); $.storageCheck(); u.$win.on("load", function(){ $.equalHeightVertical(); }); // ペースト禁止、右クリック禁止 var checkInputaddListener = function(elm, type, func){ if(! elm){return false;} if(elm.addEventListener) {/* W3C準拠ブラウザ用 */ elm.addEventListener(type, func, false); } else if(elm.attachEvent) {/* Internet Explorer用 */ elm.attachEvent('on'+type, func); }else{ return false; } return true; }; var checkinit = function() { // 対象のid名を指定(メールアドレス) var checkID = ["tbox_mail_address","tbox_mail_address_pc","tbox_mail_address_mb"] for(i=0; i'); // カーソル位置 if(self.hasClass(focusHeadName)){ setTimeout(function(){ document.getElementById(selfID).setSelectionRange(0,0); }, 1); } else if(focusTailName){ letterNum = self.val().length; setTimeout(function(){ document.getElementById(selfID).setSelectionRange(letterNum,letterNum); }, 1); } // ヘルプ制御 if(wrap.find(helpElm).size() && !wrap.hasClass(activeName)){ wrap.addClass(activeName); wrap.find(helpElm).slideDown(slideSpeed); } }); self.on("blur", function(){ wrap.removeClass(focusName); $("." + fakeName).remove(); // ヘルプ制御 /* wrap.find(triggerElm).on("click", function(){ if(wrap.hasClass(activeName)){ wrap.removeClass(activeName); wrap.find(helpElm).slideUp(slideSpeed); } }); */ if(wrap.find(helpElm).size() && wrap.hasClass(activeName)){ wrap.removeClass(activeName); wrap.find(helpElm).slideUp(slideSpeed); } // エラー制御 if(self.val() === ""){ wrap.removeClass(inputtedName); if(wrap.data("validate") === "required"){ wrap.addClass(errorName); } } else { wrap.addClass(inputtedName).removeClass(errorName); if(wrap.data("validate") === "required"){ wrap.removeClass(errorName); } } }); }); // 値変更制御 $elm.find('input[type="text"], input[type="number"], input[type="tel"], input[type="password"], textarea').each(function(){ var self = $(this), wrap = self.parent().parent(); self.on("change, blur, keyup", function(){ wrap.removeClass(sysErrorName) }); }); // numberの文字数制御 $('input[type="number"]').on("blur, keyup", function(){ var self = $(this), maxLength = self.data("maxlength"); if(self.val().length > maxLength){ self.val(self.val().slice(0, maxLength)); } }); }; /* * @plugin selectboxControl * - セレクトボックス制御 */ $.selectboxControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $elm = $(".selectWrap"), choiceElm = ".choice", helpElm = ".help", activeName = "open-help", visitedName = "visited", focusName = "focused", selectedName = "selected", errorName = "open-error", sysErrorName = "item-error", slideSpeed = 150; if($elm.length === 0){ return false; } /* setting ------------------------------- */ // 選択済かどうか $elm.find('select').each(function(){ var self = $(this), wrap = self.parent().parent(), val = self.val(); //if(wrap.is(':visible') && (val !== undefined && val !== "" && val !== "0")){ if(val !== undefined && val !== "" && val !== "0"){ wrap.addClass(selectedName); } }); /* trigger ------------------------------- */ /* フォーカス制御 */ $elm.find('select').each(function(){ var self = $(this), wrap = self.parent().parent(), val = self.val(); self.on({ focus: function(){ wrap.addClass(focusName).addClass(visitedName); // ヘルプ制御 /* if(wrap.find(helpElm).size() && !wrap.hasClass(activeName)){ wrap.addClass(activeName); wrap.find(helpElm).slideDown(slideSpeed); } */ }, blur: function(){ wrap.removeClass(focusName); // ヘルプ制御 /* if(wrap.find(helpElm).size() && wrap.hasClass(activeName)){ wrap.removeClass(activeName); wrap.find(helpElm).slideUp(slideSpeed); } */ // エラー制御 if(wrap.data("validate") === "required" && val === "" && wrap.hasClass(visitedName) && !wrap.hasClass(selectedName)){ wrap.addClass(errorName); } } }); }); /* 選択制御 */ $elm.find('select').on("change", function(){ var self = $(this), wrap = self.parent().parent(), val = self.val(); if(wrap.hasClass(visitedName)){ if(val === ""){ wrap.removeClass(selectedName); if(wrap.data("validate") === "required"){ wrap.addClass(errorName); } } else { wrap.addClass(selectedName); wrap.removeClass(sysErrorName); if(wrap.data("validate") === "required"){ wrap.removeClass(errorName); } } } }); /* セレクトボックスのカスタマイズ */ u.$win.on("load", function(){ $elm.each(function(){ var targetSelect = $(this), $target = $(choiceElm, targetSelect), $selectbox = $("select", targetSelect); /* select要素の上に擬似的にdiv要素を置いているので、selectのクリック制御 */ loadFlag = 1; $selectbox.on("change", function(){ $target.text($("option:selected", this).text()); }).trigger("change"); loadFlag = 0; }); }); }; /* * @plugin checkedControl * - ラジオボタン・チェックボックス制御 */ $.checkedControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $elm = $(".checkboxWrap, .cBox, .radioWrap"), checkedName = "checked", checklessName = "checkless", sysErrorName = "item-error"; if($elm.length === 0){ return false; } /* setting ------------------------------- */ $elm.find('input').each(function(){ var self = $(this), wrap = self.parent(), type = self.attr("type"), name = self.attr("name"); switch(type){ case "checkbox": wrap.find("input:checked").parents("label").addClass(checkedName); break; case "radio": var num = $('input[name="' + name + '"]').length; if(self.prop("checked")){ self.prop("checked", true); wrap.addClass(checkedName).removeClass(checklessName); } else { if($('input[name="' + name + '"]:checked').val() !== undefined){ self.prop("checked", false); wrap.removeClass(checkedName).addClass(checklessName); } } break; default: break; } }); //$elm.find("input:checked").parents("label").addClass(checkedName); /* trigger ------------------------------- */ /* labelでinputを囲っているので、inputのクリック制御 */ $elm.on("click", "input", function(){ var self = $(this), wrap = self.parent(), type = self.attr("type"), name = self.attr("name"); switch(type){ case "checkbox": if(wrap.hasClass(checkedName)){ self.prop("checked", false); wrap.removeClass(checkedName); } else { self.prop("checked", true); wrap.addClass(checkedName); } break; case "radio": var num = $('input[name="' + name + '"]').length; if(!wrap.hasClass(checkedName)){ for(var i=0; i= safetyNum){ counter.addClass(safetyName); } else { counter.removeClass(safetyName); } }); /* function ------------------------------- */ var letterCount = function(inp){ var counter = $('[data-count=' + inp.attr("id") + ']'), safetyNum = counter.data("safety"), letterNum = inp.val().length; inp.addClass(countedName); counter.text(letterNum); if(letterNum >= safetyNum){ counter.addClass(safetyName); } else { counter.removeClass(safetyName); } }; /* trigger ------------------------------- */ $("." + countedName).on("blur, keyup", function(){ var inp = $(this); letterCount(inp); }); $("." + countedName).on("change", function(){ var inp = $(this); letterCount(inp); }); }; /* * @plugin focusChain * - 次のinputに自動フォーカス */ $.focusChain = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $elm = $(".focus-chain"), unitClass = ".focus-chain-unit", unchainName = "unchain", strideName = "focus-chain-stride-", //親同士でまたぐ場合のclass strideLen = $('[class*="' + strideName + '"]').length; if($elm.length === 0){ return false; } /* trigger ------------------------------- */ $elm.each(function(){ var self = $(this), $unit = self.find(unitClass), unitLen = $unit.length, selfClass = self.attr("class"); $unit.find("input").on("focus",function(){ $(this).addClass(unchainName); }); $unit.find("input").on("keypress",function(){ $(this).removeClass(unchainName); }); $unit.find("input").on("keyup click touchend",function(){ var __this = $(this), __len = __this.attr("maxlength"), __val = __this.val().length, __cr = __this.parents(unitClass).index(); if(__cr >= unitLen){ return; } if(__val >= __len && !__this.hasClass(unchainName)){ // strideName間の移動 if((selfClass.indexOf(strideName) !== -1) && (__cr + 1) === (unitLen)){ var strideReg = RegExp("(.+)?" + strideName + "(\\d)(.+)?","g"), strideNum = parseInt(selfClass.replace(strideReg,"$2")), nextClass = "." + strideName + (strideNum + 1); $(nextClass).find(unitClass).eq(0).find("input").focus(); return; } var $e = $unit.eq(__cr + 1).find("input"); //$e.click(); //$e.prev("label").click(); $e.focus(); } }); }); }; /* * @plugin inputValidate * - 必須チェック・同意チェック */ $.inputValidate = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $(".entry"), // 入力画面1 $entryGenderAge = $("#entry-gender-age"), $entryCustomerTel = $("#entry-customer-tel"), // 入力画面2 $entryHomecomingAddress = $("#entry-homecoming-address"), $entryCreditCashing = $("#entry-credit-cashing"), $entryCreditReceipt = $("#entry-credit-receipt"), $entryMailMagazine = $("#entry-mail-magazine"), $entryMailAddress = $("#entry-mail-address"), noValidateName = "noValidate", $reqTextbox = $('input[type="text"], input[type="number"], input[type="tel"], input[type="password"]', $('.inputWrap[data-validate="required"]')).not("." + noValidateName), $reqTextarea = $('textarea', $('[data-validate="required"]')).not("." + noValidateName), $reqRadiobutton = $('input[type="radio"]', $('.radioWrap[data-validate="required"]')).not("." + noValidateName), $reqCheckbox = $('input[type="checkbox"]', $('.checkboxWrap[data-validate="required"]')).not("." + noValidateName), $reqSelectbox = $('select', $('.selectWrap[data-validate="required"]')).not("." + noValidateName), $agreeCheckbox = $('input[type="checkbox"]', $('.agreeBox[data-validate="agree"]')), $storageCheckbox = $('input[type="checkbox"].js-checkboxStorage'), $nextStepBtn = $(".nextScreen"), $id_pwValidation = $("input.js-id_pwValidation"), $embossCheckValidation = $("input.js-embossCheckContent"), $entryCardUploader = $("#uploader-residence-picture"), $entryResidenceSpec = $("#entry-residence-spec"), $entryHomecomingAddress02 = $("#entry-homecoming-address02"), btnTxt = { able: $('input[type="submit"]', $nextStepBtn).data("able"), disable: $('input[type="submit"]', $nextStepBtn).data("disable") }, disabledName = "disabled", sysErrorName = "item-error", itemCheckFlag = 0, delayTime = 300, nextFlag = false; if($reqTextbox.length === 0 && $reqRadiobutton.length === 0 && $reqCheckbox.length === 0 && $reqSelectbox.length === 0 && $reqTextarea.length === 0 && $agreeCheckbox.length === 0 && $storageCheckbox.length === 0 && $id_pwValidation.length === 0){ return false; } /* setting ------------------------------- */ if($nextStepBtn.hasClass(disabledName)){ $nextStepBtn.find("> input").val(btnTxt.disable); $nextStepBtn.find("> input").prop("disabled", true); } /* function ------------------------------- */ var isEntryNotEmpty = function(elm){ elm.each(function(){ var self = $(this), wrap = self.parent().parent(); //if(wrap.is(':visible') && !wrap.hasClass(disabledName) && self.val() === ""){ if(!wrap.hasClass(disabledName) && self.val() === "" ){ itemCheckFlag++; } }); }; var isEntryChecked = function(elm){ elm.each(function(){ var self = $(this), wrap = self.parent().parent(), name = self.attr("name"); //if(wrap.is(':visible') && !wrap.hasClass(disabledName) && $('input[name="' + name + '"]:checked').val() === undefined){ if(!wrap.hasClass(disabledName) && $('input[name="' + name + '"]:checked').val() === undefined){ itemCheckFlag++; } }); }; var isEntrySelected = function(elm){ elm.each(function(){ var self = $(this), wrap = self.parent().parent(), val = self.val(); //if(wrap.is(':visible') && !wrap.hasClass(disabledName) && (val === undefined || val === "")){ if(!wrap.hasClass(disabledName) && (val === undefined || val === "")){ itemCheckFlag++; } }); }; var requiredCheck = function(){ isEntryNotEmpty($reqTextbox); isEntryNotEmpty($reqTextarea); isEntryChecked($reqRadiobutton); isEntryChecked($reqCheckbox); isEntrySelected($reqSelectbox); }; var agreeCheck = function(){ if(!$agreeCheckbox.is(":checked")){ itemCheckFlag++; } }; var storageCheck = function(){ var $elm = $('.js-checkboxStorage'); var storage = $elm.data('local-storage'); var storageVal = localStorage.getItem(storage); if(storageVal != 'true') { itemCheckFlag++; } }; // 入力画面1:生年月日/性別チェック・制御 var genderAgeCheck = function(){ var overrideName = "override", tgtID1 = "rbtn_gender", $chk_sbox1 = $("#sbox_birth_year"), $chk_sbox2 = $("#sbox_birth_month"), $chk_sbox3 = $("#sbox_birth_day"), $chk_rbtn1 = $('[id^=' + tgtID1 + ']'), val1 = $('option:selected', $chk_sbox1).val(), val2 = $('option:selected', $chk_sbox2).val(), val3 = $('option:selected', $chk_sbox3).val(); if(val1 === undefined || val1 === "" || val1 === "0000"){ $chk_sbox1.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox1.parent().parent().addClass(overrideName); } if(val2 === undefined || val2 === "" || val2 === "00"){ $chk_sbox2.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox2.parent().parent().addClass(overrideName); } if(val3 === undefined || val3 === "" || val3 === "00"){ $chk_sbox3.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox3.parent().parent().addClass(overrideName); } isEntryChecked($chk_rbtn1); }; // 入力画面1:電話番号チェック var telCheck = function(){ var tgtID1 = "rbtn_tel_priority", $chk_tbox1 = $('[id^="tbox_tel_house_phone"]'), $chk_tbox2 = $('[id^="tbox_tel_cell_phone"]'), $chk_cbox1 = $("#cbox_tel_house_phone_non"), $chk_cbox2 = $("#cbox_tel_cell_phone_non"), $chk_rbtn1 = $('[id^=' + tgtID1 + ']'); if($chk_cbox1.prop("checked") && $chk_cbox2.prop("checked")){ itemCheckFlag++; } else if($chk_cbox1.prop("checked") && !$chk_cbox2.prop("checked")){ // 自宅の電話番号がない場合 isEntryNotEmpty($chk_tbox2); isEntryChecked($chk_rbtn1); } else if(!$chk_cbox1.prop("checked") && $chk_cbox2.prop("checked")){ // 携帯の電話番号がない場合 isEntryNotEmpty($chk_tbox1); isEntryChecked($chk_rbtn1); } else { isEntryNotEmpty($chk_tbox1); isEntryNotEmpty($chk_tbox2); isEntryChecked($chk_rbtn1); } }; // 入力画面2:帰省先項目チェック var homecomingCheck = function(){ var tgtID1 = "rbtn_is_homecoming", $chk_rbtn1 = $('[id^=' + tgtID1 + ']'), $tgt_tbox1 = $('#tbox_homecoming_zip'), $tgt_tbox2_1 = $('#tbox_homecoming_address2_kanji'), $tgt_tbox3 = $('[id^="tbox_tel_homecoming_phone"]'); switch($('[id^=' + tgtID1 + ']:checked').val()){ case "2": isEntryNotEmpty($tgt_tbox1); isEntryNotEmpty($tgt_tbox2_1); break; case "1": break; default: itemCheckFlag++; break; } isEntryNotEmpty($tgt_tbox3); }; // 入力画面2:キャッシング項目チェック var cashingCheck = function(){ var tgtID1 = "rbtn_credit_amount_cashing", $chk_rbtn1 = $('[id^=' + tgtID1 + ']'), $chk_sbox1 = $("#sbox_credit_amount_cashing"); isEntryChecked($chk_rbtn1); if($('[id^=' + tgtID1 + ']:checked').val() === "1"){ isEntrySelected($chk_sbox1); } }; // 入力画面2:メール・各種サービスの設定項目チェック(VOI用) var mailCheck2 = function(){ var tgtID1 = "rbtn_mail_magazine1_", tgtID2 = "rbtn_mail_magazine2_", tgtID3 = "rbtn_mail_magazine3_", tgtID4 = "rbtn_mail_magazine4_", tgtID5 = "rbtn_regist_ribo1_", tgtID6 = "rbtn_apply_etc1_", $tgt_tbox1 = $('#tbox_mail_address_pc'), $tgt_tbox2 = $('#tbox_mail_address_mb'), $chk_rbtn1 = $('[id^=' + tgtID1 + ']'), $chk_rbtn2 = $('[id^=' + tgtID2 + ']'), $chk_rbtn3 = $('[id^=' + tgtID3 + ']'), $chk_rbtn4 = $('[id^=' + tgtID4 + ']'), $chk_rbtn5 = $('[id^=' + tgtID5 + ']'), $chk_rbtn6 = $('[id^=' + tgtID6 + ']'); isEntryChecked($chk_rbtn1); isEntryChecked($chk_rbtn2); isEntryChecked($chk_rbtn3); isEntryChecked($chk_rbtn4); isEntryChecked($chk_rbtn5); isEntryChecked($chk_rbtn6); if($tgt_tbox1.val() === undefined || $tgt_tbox1.val() === ""){ isEntryNotEmpty($tgt_tbox2); } if($tgt_tbox2.val() === undefined || $tgt_tbox2.val() === ""){ isEntryNotEmpty($tgt_tbox1); } }; // 入力画面2:カードお受け取り項目チェック var receiptCheck = function(){ var ctrlID = "rbtn_credit_receipt_way", tgtID1 = "rbtn_credit_receipt_delivery", tgtID2_1 = "rbtn_credit_confirm_shop", tgtID2_2 = "rbtn_credit_confirm_delivery", $ctrl_rbtn1 = $('[id^=' + ctrlID + ']'), $chk_sbox1 = $("#sbox_credit_receipt_shop"), $chk_rbtn1 = $('[id^=' + tgtID1 + ']'), $chk_rbtn2_1 = $('[id^=' + tgtID2_1 + ']'), $chk_rbtn2_2 = $('[id^=' + tgtID2_2 + ']'), designcard_flag = ($ctrl_rbtn1.length === 0) ? true : false; // 配達のみのデザインカードの場合 if(!designcard_flag){ // カードのお受け取り方法 switch($('[id^=' + ctrlID + ']:checked').val()){ // 「店舗・施設で受取」の場合 case "1": isEntrySelected($chk_sbox1); isEntryChecked($chk_rbtn2_1); break; // 「配達で受取」の場合 case "2": isEntryChecked($chk_rbtn1); isEntryChecked($chk_rbtn2_2); break; default: itemCheckFlag++; break; } } else { // 配達のみの場合 isEntryChecked($chk_rbtn1); isEntryChecked($chk_rbtn2_2); } }; // 入力画面2:メールアドレスチェック var mailCheck = function(){ var tgtID1 = "sbox_mail_domain_pc", $chk_rbtn1 = $('[id^=' + tgtID1 + ']'), $chk_tbox1 = $("#tbox_mail_career_domain"); if($chk_rbtn1.val() == 'その他'){ isEntryNotEmpty($chk_tbox1); } }; var mailCheck3 = function(){ var tgtID1 = "sbox_mail_domain_pc_confirm", $chk_rbtn1 = $('[id^=' + tgtID1 + ']'), $chk_tbox1 = $("#tbox_mail_career_domain_confirm"); if($chk_rbtn1.val() == 'その他'){ isEntryNotEmpty($chk_tbox1); } }; var mailCheck4 = function(){ var $address01 = $('#tbox_mail_address'), $address02 = $('#tbox_mail_address_confirm'), addressId01 = $address01.val(), addDmainId01 = $('#sbox_mail_domain_pc').val(), addressId02 = $address02.val(), addDmainId02 = $('#sbox_mail_domain_pc_confirm').val(), addDmainId03 = $('#tbox_mail_career_domain').val(), addDmainId04 = $('#tbox_mail_career_domain_confirm').val(); if(addressId02 === "" || addressId01 === addressId02 && addDmainId01 === addDmainId02 && addDmainId01 !== "その他" || addressId01 === addressId02 && addDmainId01 === "その他" && addDmainId02 === "その他" && addDmainId03 !== "" && addDmainId03 === addDmainId04){ return } else { itemCheckFlag++; } }; // ID・パスワード変更画面チェック var id_pwCheck = function (elm) { elm.each(function(){ var value = $(this).val(), f = 0; //入力が空のとき if(value.length === 0){ f++; } //半角英数字と記号(.-_)以外だったとき if(value.match( /[^A-Za-z0-9_\-\.]+/g )){ f++; } //半角英字と記号(.-_)のみだったとき if(!value.match( /[^A-Za-z_\-\.]+/g )){ f++; } //半角数字と記号(.-_)のみだったとき if(!value.match( /[^0-9_\-\.]+/g )){ f++; } //入力が8文字未満、20文字を超えるとき if(value.length < 8 || value.length > 20){ f++; } if(f !== 0){ itemCheckFlag++; } }); }; // エンボス加工チェック var embossCheck = function () { var $chk_cbox1 = $('.js-embossCheckContent'), $chk_rbox2 = $('.js-embossDisabled'); if($chk_cbox1.prop('checked') == true && $chk_rbox2.prop('checked') == true){ itemCheckFlag++; } }; // 入力画面1:在留カード画像チェック var residenceUploadCheck = function(){ if(uploadFlag1 !== true || uploadFlag2 !== true){ itemCheckFlag++; } }; // 入力画面1:在留カード情報チェック var residenceSpecCheck = function(){ var overrideName = "override", $chk_sbox1 = $("#sbox_residence_year"), $chk_sbox2 = $("#sbox_residence_month"), $chk_sbox3 = $("#sbox_residence_day"), $chk_sbox4 = $("#sbox_residence_status"), $chk_tbox1 = $("#tbox_residence_num"), $chk_tbox2 = $("#tbox_name"), val1 = $('option:selected', $chk_sbox1).val(), val2 = $('option:selected', $chk_sbox2).val(), val3 = $('option:selected', $chk_sbox3).val(), val4 = $('option:selected', $chk_sbox4).val(); var $chk_rbtn1 = $('#rbtn_credit_confirm_shop0601'), $chk_rbtn2 = $('#rbtn_credit_confirm_delivery0601'); if($chk_rbtn1.prop("checked") || $chk_rbtn2.prop("checked")){ if(val1 === undefined || val1 === "" || val1 === "0000"){ $chk_sbox1.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox1.parent().parent().addClass(overrideName); } if(val2 === undefined || val2 === "" || val2 === "00"){ $chk_sbox2.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox2.parent().parent().addClass(overrideName); } if(val3 === undefined || val3 === "" || val3 === "00"){ $chk_sbox3.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox3.parent().parent().addClass(overrideName); } if(val4 === undefined || val4 === "" || val4 === "00"){ $chk_sbox4.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox4.parent().parent().addClass(overrideName); } isEntryNotEmpty($chk_tbox1); isEntryNotEmpty($chk_tbox2); } }; // 入力画面1:国籍・地域 var nationalityCheck = function(){ var overrideName = "override", $chk_sbox = $("#sbox_nationality"), val1 = $('option:selected', $chk_sbox).val(); var $chk_rbtn1 = $('#rbtn_credit_confirm_shop0601'), $chk_rbtn2 = $('#rbtn_credit_confirm_delivery0601'); if($chk_rbtn1.prop("checked") || $chk_rbtn2.prop("checked")){ if(val1 === undefined || val1 === "" || val1 === "00"){ $chk_sbox.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox.parent().parent().addClass(overrideName); } } }; // 入力画面1:許可年月日チェック var permittedCheck = function(){ var overrideName = "override", $chk_sbox1 = $("#sbox_permitted_year"), $chk_sbox2 = $("#sbox_permitted_month"), $chk_sbox3 = $("#sbox_permitted_day"), val1 = $('option:selected', $chk_sbox1).val(), val2 = $('option:selected', $chk_sbox2).val(), val3 = $('option:selected', $chk_sbox3).val(); var $chk_rbtn1 = $('#rbtn_credit_confirm_shop0601'), $chk_rbtn2 = $('#rbtn_credit_confirm_delivery0601'); if($chk_rbtn1.prop("checked") || $chk_rbtn2.prop("checked")){ if(val1 === undefined || val1 === "" || val1 === "0000"){ $chk_sbox1.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox1.parent().parent().addClass(overrideName); } if(val2 === undefined || val2 === "" || val2 === "00"){ $chk_sbox2.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox2.parent().parent().addClass(overrideName); } if(val3 === undefined || val3 === "" || val3 === "00"){ $chk_sbox3.parent().parent().removeClass(overrideName); itemCheckFlag++; } else { $chk_sbox3.parent().parent().addClass(overrideName); } } }; // 入力画面2:帰省先項目チェック var homecomingCheck02 = function(){ var tgtID1 = "sbox_residence_status", //$chk_rbtn1 = $('[id^=' + tgtID1 + ']'), $chk_sbox1 = $('#sbox_residence_status'), $tgt_tbox1 = $('#tbox_homecoming_zip02'), $tgt_tbox2 = $('#tbox_tel_homecoming02_phone'); var $chk_rbtn1 = $('#rbtn_credit_confirm_shop0601'), $chk_rbtn2 = $('#rbtn_credit_confirm_delivery0601'); if($chk_rbtn1.prop("checked") || $chk_rbtn2.prop("checked")){ if($chk_sbox1.val() == "18"){ isEntryNotEmpty($tgt_tbox1); isEntryNotEmpty($tgt_tbox2); } } }; var formEntryCheck = function(){ // 必須チェック requiredCheck(); // 入力画面1:生年月日/性別チェック・制御 if($entryGenderAge.size()){ genderAgeCheck(); } // 入力画面1:電話番号チェック if($entryCustomerTel.size()){ telCheck(); } // 入力画面2:帰省先項目チェック if($entryHomecomingAddress.size()){ homecomingCheck(); } // 入力画面2:キャッシング項目チェック if($entryCreditCashing.size()){ cashingCheck(); } // 入力画面2:カードお受け取り項目チェック if($entryCreditReceipt.size()){ receiptCheck(); } // 入力画面2:メール・各種サービスの設定項目チェック(VOI用) if($entryMailMagazine.size()){ if(typeof voi_flag !== 'undefined' && voi_flag === true){ mailCheck2(); } } // ID・パスワード変更画面チェック if($id_pwValidation.size()){ id_pwCheck($id_pwValidation); } // エンボス加工チェック if($embossCheckValidation.size()){ embossCheck(); } // 入力画面2:同意事項チェック if($agreeCheckbox.size()){ agreeCheck(); } if($storageCheckbox.size()){ storageCheck(); } // 入力画面2:メールアドレスチェック if($entryMailAddress.size()){ mailCheck(); mailCheck3(); mailCheck4(); } // 入力画面1:在留カード情報チェック if($entryCardUploader.size()){ residenceUploadCheck(); } // 入力画面1:在留カード情報チェック if($entryResidenceSpec.size()){ residenceSpecCheck(); } // 入力画面1:在留カード情報チェック if($entryResidenceSpec.size()){ nationalityCheck(); } // 入力画面1:在留カード情報チェック(許可年月日項目がある画面のみ) if($entryResidenceSpec.size() && $("#sbox_permitted_year").length){ permittedCheck(); } // 入力画面2:在留カード帰省先項目チェック if($entryHomecomingAddress02.size()){ homecomingCheck02(); } if(itemCheckFlag === 0){ nextFlag = true; } if(nextFlag){ $nextStepBtn.removeClass(disabledName); $nextStepBtn.find("> input").val(btnTxt.able); $nextStepBtn.find("> input").prop("disabled", false); } else { $nextStepBtn.addClass(disabledName); $nextStepBtn.find("> input").val(btnTxt.disable); $nextStepBtn.find("> input").prop("disabled", true); } // 初期化 itemCheckFlag = 0; nextFlag = false; }; /* init ------------------------------- */ u.$win.on("load", function(){ formEntryCheck(); }); // 規約画面用実行記述 if($nextStepBtn.hasClass("entryDesign")){ formEntryCheck(); } /* trigger ------------------------------- */ $("input, textarea, select").on("change", function(){ setTimeout(function(){ formEntryCheck(); }, delayTime); }); $("input, textarea").on("blur, keyup", function(){ setTimeout(function(){ formEntryCheck(); }, delayTime); }); $("select").on("blur", function(){ setTimeout(function(){ formEntryCheck(); }, delayTime); }); // ソフトウェアキーボードの実行押下時制御 $("input, textarea").on("keypress",function(e){ var RETURN_KEY_CODE = 13; if(e.keyCode === RETURN_KEY_CODE){ setTimeout(function(){ formEntryCheck(); }, delayTime); if($nextStepBtn.hasClass(disabledName)){ document.activeElement.blur(); return false; } } }); }; /* * @plugin entryValidate * - 項目チェック */ $.entryValidate = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), storage = sessionStorage, $body = $("body"), $flow = $("#formFlow"), $entry = $(".entry"), // 入力画面1 $entryCustomerAddress = $("#entry-customer-address"), $entryCustomerTel = $("#entry-customer-tel"), // 入力画面2 $entryHomecomingAddress = $("#entry-homecoming-address"), $entryCreditCashing = $("#entry-credit-cashing"), $entryCreditReceipt = $("#entry-credit-receipt"), noValidateName = "noValidate", $reqTextbox = $('input[type="text"], input[type="number"], input[type="tel"], input[type="password"]', $('.inputWrap[data-validate="required"]')).not("." + noValidateName), //$reqTextarea = $('textarea', $('[data-validate="required"]')).not("." + noValidateName), $reqRadiobutton = $('input[type="radio"]', $('.radioWrap[data-validate="required"]')).not("." + noValidateName), $reqCheckbox = $('input[type="checkbox"]', $('.checkboxWrap[data-validate="required"]')).not("." + noValidateName), $reqSelectbox = $('select', $('.selectWrap[data-validate="required"]')).not("." + noValidateName), $incompleteElm = $(".incomplete"), $completeElm = $(".complete"), $tglBtn = $(".entryIndex"), $tglPanel = $(".entryPanel"), $nextStep = $(".panelNext"), openedName = "opened", activeName = "active", disabledName = "disabled", inputtedName = "inputted", checkedName = "checked", selectedName = "selected", entryErrorName = "entryError", slideSpeed = 200, itemCheckFlag = 0, validateStepFlag = false, currentStep, getStep, webkit = /webkit/, speed = 300, easing = "swing", initial_all_hide = false, page_pattern; if($entry.length === 0){ return false; } /* setting ------------------------------- */ // ページパターン設定 if(typeof voi_flag !== 'undefined' && voi_flag === true){ page_pattern = "voi"; } else { if(typeof error_flag !== 'undefined' && error_flag === true){ page_pattern = "error"; } else { page_pattern = "default"; } } $body.attr("data-page-pattern", page_pattern); // 初期表示設定 switch(page_pattern){ case "voi": // パネル全て開く $tglPanel.show(); // バーの入力内容・入力エラー、「次へ」ボタン非表示 $incompleteElm.find("." + entryErrorName).hide(); $completeElm.hide(); $nextStep.hide(); break; case "error": // パネル全て閉じる $tglBtn.removeClass(activeName); $tglPanel.hide(); break; default: // 最初のパネルのみ開く $tglBtn.removeClass(activeName); $tglPanel.hide(); $entry.eq(0) .find($tglBtn).addClass(activeName).end() .find($tglBtn).next().show(); // アンカー移動 $entry.eq(0).find($tglBtn).next().find('input[type=text]').on("click", function(){ setTimeout(function(){ var self1stPosY = $entry.eq(0).offset().top, winScrollY = u.$win.scrollTop(); if(self1stPosY > winScrollY){ $("html, body").animate({ scrollTop: self1stPosY }, speed, easing); } }, slideSpeed); }); break; } /* function ------------------------------- */ var isEntryNotEmpty = function(elm){ elm.each(function(){ var self = $(this), wrap = self.parent().parent(); //if(wrap.is(':visible') && !wrap.hasClass(disabledName) && self.val() === ""){ if(!wrap.hasClass(disabledName) && self.val() === "" ){ itemCheckFlag++; } }); }; var isEntryChecked = function(elm){ elm.each(function(){ var self = $(this), wrap = self.parent().parent(), name = self.attr("name"); //if(wrap.is(':visible') && !wrap.hasClass(disabledName) && $('input[name="' + name + '"]:checked').val() === undefined){ if(!wrap.hasClass(disabledName) && $('input[name="' + name + '"]:checked').val() === undefined){ itemCheckFlag++; } }); }; var isEntrySelected = function(elm){ elm.each(function(){ var self = $(this), wrap = self.parent().parent(), val = self.val(); //if(wrap.is(':visible') && !wrap.hasClass(disabledName) && (val === undefined || val === "")){ if(!wrap.hasClass(disabledName) && (val === undefined || val === "")){ itemCheckFlag++; } }); }; // 入力画面1:住所反映 var addressReflect = function(){ var $address_kanji1 = $('#address_kanji1 .readonlyBox'), $address_kana1 = $('#address_kana1 .readonlyBox'), $disp_address_kanji1 = $('[data-item="address_kanji1"]'), $disp_address_kana1 = $('[data-item="address_kana1"]'); if($address_kanji1.text() !== ""){ $disp_address_kanji1.text($address_kanji1.text()); } if($address_kana1.text() !== ""){ $disp_address_kana1.text($address_kana1.text()); } }; // 入力画面1:電話番号反映 var telReflect = function(){ var tgtID1 = "rbtn_tel_priority", $tgt_tbox1_1 = $("#tbox_tel_house_phone1"), $tgt_tbox1_2 = $("#tbox_tel_house_phone2"), $tgt_tbox1_3 = $("#tbox_tel_house_phone3"), $tgt_tbox2_1 = $("#tbox_tel_cell_phone1"), $tgt_tbox2_2 = $("#tbox_tel_cell_phone2"), $tgt_tbox2_3 = $("#tbox_tel_cell_phone3"), $tgt_cbox1 = $("#cbox_tel_house_phone_non"), $tgt_cbox2 = $("#cbox_tel_cell_phone_non"), $tgt_rbtn1 = $('[id^=' + tgtID1 + ']'), $disp_tel1_1 = $('[data-item="' + $tgt_tbox1_1.attr("id") + '"]'), $disp_tel1_2 = $('[data-item="' + $tgt_tbox1_2.attr("id") + '"]'), $disp_tel1_3 = $('[data-item="' + $tgt_tbox1_3.attr("id") + '"]'), // 携帯電話番号入力が入力済みの場合「.tbox_tel_cell_phone_inputted」 $disp_tel2_1 = $(".tbox_tel_cell_phone_inputted").length === 0? $('[data-item="' + $tgt_tbox2_1.attr("id") + '"]') : $(".tbox_tel_cell_phone_inputted"), $disp_tel2_2 = $('[data-item="' + $tgt_tbox2_2.attr("id") + '"]'), $disp_tel2_3 = $('[data-item="' + $tgt_tbox2_3.attr("id") + '"]'), $disp_priority = $('[data-item="' + tgtID1 + '"]'), $disp_tel1_priority = $disp_tel1_3.next(), // 携帯電話番号入力が入力済みの場合「.tbox_tel_cell_phone_inputted」 $disp_tel2_priority = $(".tbox_tel_cell_phone_inputted").length === 0? $disp_tel2_3.next() : $(".tbox_tel_cell_phone_inputted").next(); if($tgt_cbox1.prop("checked") && $tgt_cbox2.prop("checked")){ // エラーなので無視 } else if($tgt_cbox1.prop("checked") && !$tgt_cbox2.prop("checked")){ // 自宅の電話番号がない場合 $disp_tel1_1.empty(); $disp_tel1_2.empty(); $disp_tel1_3.empty(); $disp_priority.empty(); } else if(!$tgt_cbox1.prop("checked") && $tgt_cbox2.prop("checked")){ // 携帯の電話番号がない場合 $disp_tel2_1.empty(); $disp_tel2_2.empty(); $disp_tel2_3.empty(); $disp_priority.empty(); } else { var val = $('[id^="' + tgtID1 + '"]:checked').val(); switch(val){ case "0": // 「自宅」の場合 $disp_tel2_priority.empty(); break; case "1": // 「携帯」の場合 $disp_tel1_priority.empty(); break; default: break; } } }; // 入力画面2:帰省先反映 var homecomingReflect = function(){ var tgtID1 = "rbtn_is_homecoming", $tgt_rbtn1 = $('[id^=' + tgtID1 + ']'), $address_kanji1 = $('#homecoming_address_kanji1 .readonlyBox'), $disp_is_homecoming = $('[data-item="rbtn_is_homecoming"]'), $disp_address_zip = $('[data-item="tbox_homecoming_zip"]'), $disp_address_kanji1 = $('[data-item="homecoming_address_kanji1"]'), $disp_address_kanji2 = $('[data-item="tbox_homecoming_address2_kanji"]'); switch($('[id^=' + tgtID1 + ']:checked').val()){ case "2": if($address_kanji1.text() !== ""){ $disp_address_kanji1.text($address_kanji1.text()); } // 空に $disp_is_homecoming.text(""); break; case "1": // 空に $disp_address_zip.text(""); $disp_address_kanji1.text(""); $disp_address_kanji2.text(""); break; default: break; } }; // 入力画面2:キャッシングの希望ご利用枠反映 var cashingReflect = function(){ var tgtID1 = "rbtn_credit_amount_cashing", $tgt_rbtn1 = $('[id^=' + tgtID1 + ']'), $tgt_sbox1 = $("#sbox_credit_amount_cashing"), $disp_cashing = $('[data-item="' + $tgt_sbox1.attr("id").split("sbox_")[1] + '"]'); if($('[id^=' + tgtID1 + ']:checked').val() !== "1"){ $disp_cashing.text($('[id^=' + tgtID1 + ']:checked').parent().text()); } else { $disp_cashing.text($('option:selected', $tgt_sbox1).text()); } }; // 入力画面2:カードお受け取り方法反映 var receiptReflect = function(){ var tgtID1 = "rbtn_credit_receipt_way", tgtID2 = "rbtn_credit_receipt_delivery", tgtID3_1 = "rbtn_credit_confirm_shop", tgtID3_2 = "rbtn_credit_confirm_delivery", $tgt_rbtn1 = $('[id^=' + tgtID1 + ']'), $tgt_sbox1 = $("#sbox_credit_receipt_shop"), $tgt_rbtn2= $("#rbtn_credit_receipt_delivery"), $tgt_rbtn3_1= $('[id^=' + tgtID3_1 + ']'), $tgt_rbtn3_2= $('[id^=' + tgtID3_2 + ']'), $tgt_tbox2 = $("#tbox_credit_driver_license2"), $disp_receipt1_1 = $('[data-item="' + $tgt_sbox1.attr("id") + '"]'), $disp_receipt1_2 = $('[data-item="' + tgtID2 + '"]'), $disp_receipt2_1 = $('[data-item="' + tgtID3_1 + '"]'), $disp_receipt2_2 = $('[data-item="' + tgtID3_2 + '"]'), $disp_receipt4 = $('[data-item="' + $tgt_tbox2.attr("id") + '"]'), designcard_flag = ($tgt_rbtn1.length === 0) ? true : false; // 配達のみのデザインカードの場合 if(!designcard_flag){ switch($('[id^=' + tgtID1 + ']:checked').val()){ // 「店舗・施設で受取」の場合 case "1": $disp_receipt1_2.empty(); $disp_receipt2_2.empty(); $disp_receipt2_1.text($('[id^=' + tgtID3_1 + ']:checked').parent().text()); $disp_receipt4.text($tgt_tbox2.val()); break; // 「配達で受取」の場合 case "2": $disp_receipt1_1.empty(); $disp_receipt2_1.empty(); $disp_receipt2_2.text($('[id^=' + tgtID3_2 + ']:checked').parent().text()); $disp_receipt4.text($tgt_tbox2.val()); break; default: break; } } else { // 配達のみの場合 $disp_receipt1_1.empty(); $disp_receipt2_1.empty(); $disp_receipt2_2.text($('[id^=' + tgtID3_2 + ']:checked').parent().text()); $disp_receipt4.text($tgt_tbox2.val()); } }; // 入力画面1:メールアドレスドメイン反映 var mailReflect = function(){ var $maildomain = $('#sbox_mail_domain_pc'), $maildomain_other = $('#tbox_mail_career_domain'), $disp_maildomain = $('[data-item="sbox_mail_domain_pc"]'), val; if($maildomain.val() == "その他"){ $disp_maildomain.text($maildomain_other.val()); }else{ if($('option:selected', $maildomain).val() !== undefined && $('option:selected', $maildomain).val() !== "" && $('option:selected', $maildomain).val() !== "0"){ val = $('option:selected', $maildomain).text(); } else { val = ""; } $disp_maildomain.text(val); } }; var inputReflect = function(id){ var $target = $("#" + id); $target.find($completeElm).find('[data-item]').each(function(){ var $this = $(this), id = $this.data("item"), elm = ((id.indexOf("rbtn_")!==-1) || (id.indexOf("cbox_")!==-1)) ? $('[id^="' + id + '"]') : $('#' + id), disp = elm.data("display"), tag = elm.prop("tagName"), val = ""; switch(tag){ case "INPUT": var type = elm.attr("type"); switch(type){ case "text": val = elm.val(); break; case "number": val = elm.val(); break; case "tel": val = elm.val(); break; case "radio": if(disp === "value"){ // チェックされたvalue値 val = $('[id^="' + id + '"]:checked').val(); } else if(disp === undefined){ // チェックされたテキスト(デフォルト) val = $('[id^="' + id + '"]:checked').parent().text(); } else { // チェックされたdata-display属性値 val = $('[id^="' + id + '"]:checked').data("display"); } break; case "checkbox": if(disp === "value"){ // チェックされたvalue値 val = $('[id^="' + id + '"]:checked').map(function(){ return $(this).val(); }).get(); } else if(disp === undefined){ // チェックされたテキスト(デフォルト) val = $('[id^="' + id + '"]:checked').map(function(){ return $(this).parent().text(); }).get(); } else { // チェックされたdata-display属性値 val = $('[id^="' + id + '"]:checked').map(function(){ return $(this).data("display"); }).get(); } break; case "password": val = elm.val(); valNum = val.length; val = ""; for(var i=0; i= currentStep){ validateStepFlag = true; } } storage.setItem("step", currentStep); } if(page_pattern !== "voi"){ if(validateStepFlag){ $entry.each(function(){ var self = $(this), entryID = self.attr("id"); entryCheck(entryID); }); } else { // 入力済フラグ「true」かつシステムエラーフラグなしの場合 if(typeof inputted_flag !== 'undefined' && inputted_flag === true){ if(!(typeof error_flag !== 'undefined' && error_flag === true)){ $entry.each(function(){ var self = $(this), entryID = self.attr("id"); entryCheck(entryID); }); } } } } /* trigger ------------------------------- */ if(page_pattern !== "voi"){ // 「エントリー」制御 $tglBtn.on("click", function(){ var self = $(this), selfEntry = self.parent(), selfID = selfEntry.attr("id"), selfPosY = selfEntry.offset().top, tgtPanel = self.next(), closePanel; // バリデーション if(selfEntry.hasClass(openedName)){ entryCheck(selfID); } else { selfEntry.addClass(openedName); } if(self.hasClass(activeName)){ // 開閉処理 self.removeClass(activeName); tgtPanel.slideUp(slideSpeed); } else { // バリデーション closeEntry = $entry.find("> ." + activeName).parent(); entryCheck(closeEntry.attr("id")); // 開閉処理 $tglBtn.not(self).removeClass(activeName); self.addClass(activeName); $tglPanel.not(tgtPanel).slideUp(slideSpeed); tgtPanel.slideDown(slideSpeed); } // アンカー移動 setTimeout(function(){ selfPosY = selfEntry.offset().top; $("html, body").animate({ scrollTop: selfPosY }, speed, easing); }, slideSpeed); }); // 「次へ」制御 $nextStep.on("click", "> a", function(){ var self = $(this).parent(), selfEntry = self.parent().parent(), selfID = selfEntry.attr("id"), selfPosY = selfEntry.offset().top, nextEntry = selfEntry.next(); // バリデーション entryCheck(selfID); // 開閉処理 selfEntry.find($tglBtn).removeClass(activeName); nextEntry.find($tglBtn).addClass(activeName); selfEntry.find($tglPanel).slideUp(slideSpeed); nextEntry.find($tglPanel).slideDown(slideSpeed).addClass(openedName); // アンカー移動 setTimeout(function(){ $("html, body").animate({ scrollTop: selfPosY }, speed, easing); }, slideSpeed); }); } }; /* * @plugin entryCustomerAddressControl * - 入力画面1:住所項目制御 */ $.entryCustomerAddressControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-customer-address"), $dispElm1 = $('#address_kanji1'), $dispElm2 = $('#address_kana1'), $hiddenElm = $('.hide', $container), $addressResultElm =$(".addressResultWrap", $container), $postInp = $("#tbox_house_zip", $container), $postBtn = $(".searchAddressBtn", $container), $postElm = $("#addressReflect01", $container), $address1Inp = $dispElm1.find(".readonlyBox"), $address1Elm = $("#addressReflect02", $container), $address2Inp = $("#tbox_house_address2_kanji", $container), $address2Elm = $("#addressReflect03", $container), $address3Inp = $("#tbox_house_address2_kana", $container), $chkAddrConf = $("#cbox_address_confirm"), $chkAddrCrrt = $("#cbox_address_correct"), $chkPostCrrt = $("#cbox_post_correct"), $form = $(".formWrap form"), $tglBtn = $(".entryIndex"), $tglPanel = $(".entryPanel"), activeName = "active", slideSpeed = 150, MODAL_PC_W = "850px", MODAL_PC_H = "320px", MODAL_SP_W = "95%", MODAL_SP_H = "auto", webkit = /webkit/, speed = 300, easing = "swing", isAddrConfirm; if($container.length === 0){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(elm1, elm2){ if(elm1.text() !== "" && elm2.text() !== ""){ $hiddenElm.slideDown(slideSpeed); } }; var addressReflect1 = function(){ var postAddress = $postInp.val().replace(/(\d{3})(\d{4})/,"$1-$2"); $postElm.text("〒" + postAddress); }; var addressReflect2 = function(){ $address1Elm.text($address1Inp.text()); }; var addressReflect3 = function(){ $address2Elm.text($address2Inp.val()); }; var modalCloseFocus = function(){ // 住所を確定 if(isAddrConfirm === true){ $form.submit(); } else { // 住所を修正 //住所パネルを展開 $tglBtn.removeClass(activeName); $tglPanel.hide(); $container .find($tglBtn).addClass(activeName).end() .find($tglBtn).next().show(); //住所入力欄にフォーカス if(isAddrConfirm === "postCorrect"){ setTimeout(function(){ $postInp.focus(); },300); } else { setTimeout(function(){ $address2Inp.focus(); },300); } setTimeout(function(){ //住所パネルにスクロール var targetPosY = $container.offset().top; $("html, body").animate({ scrollTop: targetPosY }, speed, easing); },500); } }; $chkAddrConf.on("click input",function(){ var self = $(this); if(self.prop("checked") === true){ isAddrConfirm = true; $.colorbox.close(); $(document).unbind('cbox_closed'); //郵便番号モーダルclose時のイベントを解除 } }); $chkAddrCrrt.on("click",function(){ isAddrConfirm = false; $.colorbox.close(); $(document).unbind('cbox_closed'); //郵便番号モーダルclose時のイベントを解除 }); $chkPostCrrt.on("click",function(){ isAddrConfirm = "postCorrect"; $.colorbox.close(); $(document).unbind('cbox_closed'); //郵便番号モーダルclose時のイベントを解除 }); var addressConfirmModal = function(){ // 確定ボタンの初期化 $chkAddrConf.prop("checked",false).parent().removeClass("checked"); var setModalH,setModalH; if(!u.isRangeSP()){ setModalW = MODAL_PC_W; setModalH = MODAL_PC_H; } else { setModalW = MODAL_SP_W; setModalH = MODAL_SP_H; } $.colorbox({ className:"cb_layout01 type-address type-black", inline: true, opacity:0.5, width: setModalW, height: setModalH, href: $addressResultElm, fixed: true, overlayClose: false, escKey: false, closeButton: false, returnFocus: false, onClosed: function(){ modalCloseFocus(); } }); u.isWindowSizeCheck(function(){ $.colorbox.resize({ width: setModalW }); }); }; /* init ------------------------------- */ entryProcessing1($dispElm1.find(".readonlyBox"), $dispElm2.find(".readonlyBox")); addressReflect1(); addressReflect2(); addressReflect3(); $postBtn.on("click",function(){ addressReflect1(); }); $address2Inp.on("blur",function(){ addressReflect3(); }); $address2Inp.on("focus",function(){ setTimeout(function(){ isAddrConfirm = false; },300); }); // submit時に住所モーダル展開 $form.submit(function(){ if(isAddrConfirm === true){ return true; } else { addressConfirmModal(); return false; } }); }; /* * @plugin entryCustomerTelControl * - 入力画面1:電話番号項目制御 */ $.entryCustomerTelControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-customer-tel"), ctrlID1 = "cbox_tel_house_phone_non", ctrlID2 = "cbox_tel_cell_phone_non", ctrlID3 = "rbtn_tel_priority", $ctrl_cbox1 = $('#' + ctrlID1), $ctrl_cbox2 = $('#' + ctrlID2), $ctrl_cbox_group1 = $('#' + ctrlID1 + ',' + '#' + ctrlID2), $tgt_tbox1 = $('[id^="tbox_tel_house_phone"]'), $tgt_tbox2 = $('[id^="tbox_tel_cell_phone"]'), $tgt_rbtn1 = $('[id^=' + ctrlID3 + ']'), $tgt_rbtn1_1 = $('#' + ctrlID3 + '1'), $tgt_rbtn1_2 = $('#' + ctrlID3 + '2'), $hiddenElm = $('.hide', $container), checkedName = "checked", checklessName = "checkless", disabledName = "disabled", inputtedName = "inputted", errorName = "open-error", slideSpeed = 150; if($container.length === 0){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(){ if($ctrl_cbox1.prop("checked") && $ctrl_cbox2.prop("checked")){ $hiddenElm.slideDown(slideSpeed); $tgt_tbox1.prop("disabled", true).parent().parent().addClass(disabledName).removeClass(errorName); if($tgt_tbox1.val() === ""){ $tgt_tbox1.parent().parent().removeClass(inputtedName); } $tgt_tbox2.prop("disabled", true).parent().parent().addClass(disabledName).removeClass(errorName); if($tgt_tbox2.val() === ""){ $tgt_tbox2.parent().parent().removeClass(inputtedName); } $tgt_rbtn1_1.prop("checked", false).prop("disabled", true).parent().removeClass(checkedName + ' ' + checklessName); $tgt_rbtn1_2.prop("checked", false).prop("disabled", true).parent().removeClass(checkedName + ' ' + checklessName); } else if($ctrl_cbox1.prop("checked") && !$ctrl_cbox2.prop("checked")){ // 自宅の電話番号がない場合 $hiddenElm.slideUp(slideSpeed); $tgt_tbox1.prop("disabled", true).parent().parent().addClass(disabledName).removeClass(errorName); if($tgt_tbox1.val() === ""){ $tgt_tbox1.parent().parent().removeClass(inputtedName); } $tgt_tbox2.prop("disabled", false).parent().parent().removeClass(disabledName); $tgt_rbtn1_1.prop("checked", false).prop("disabled", true).parent().removeClass(checkedName).addClass(checklessName); $tgt_rbtn1_2.prop("checked", true).prop("disabled", false).parent().addClass(checkedName).removeClass(checklessName); } else if(!$ctrl_cbox1.prop("checked") && $ctrl_cbox2.prop("checked")){ // 携帯の電話番号がない場合 $hiddenElm.slideUp(slideSpeed); $tgt_tbox1.prop("disabled", false).parent().parent().removeClass(disabledName); $tgt_tbox2.prop("disabled", true).parent().parent().addClass(disabledName).removeClass(errorName); if($tgt_tbox2.val() === ""){ $tgt_tbox2.parent().parent().removeClass(inputtedName); } $tgt_rbtn1_1.prop("checked", true).prop("disabled", false).parent().addClass(checkedName).removeClass(checklessName); $tgt_rbtn1_2.prop("checked", false).prop("disabled", true).parent().removeClass(checkedName).addClass(checklessName); } else { $hiddenElm.slideUp(slideSpeed); $tgt_tbox1.prop("disabled", false).parent().parent().removeClass(disabledName); $tgt_tbox2.prop("disabled", false).parent().parent().removeClass(disabledName); $tgt_rbtn1_1.prop("disabled", false); $tgt_rbtn1_2.prop("disabled", false); } }; /* init ------------------------------- */ entryProcessing1(); /* trigger ------------------------------- */ // checkbox制御 $ctrl_cbox1.on("click", function(){ entryProcessing1(); }); $ctrl_cbox2.on("click", function(){ entryProcessing1(); }); }; /* * @plugin entryWorkPlaceControl * - 入力画面2:会社分類項目制御 */ $.entryWorkPlaceControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-work-place"), $tgt_tbox1 = $('#tbox_work_place_name_kanji'), $tgt_tbox2 = $('#tbox_work_place_name_kana'), $divisionList = $('#workDivisionList'), inputtedName = "inputted", focusHeadName = "focus-head", focusTailName = "focus-tail"; if($container.length === 0){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(kanji, kana, pos){ switch(pos){ case "prev": $tgt_tbox1.addClass(focusTailName).removeClass(focusHeadName).val(kanji); $tgt_tbox2.addClass(focusTailName).removeClass(focusHeadName).val(kana); $tgt_tbox1.parent().parent().addClass(inputtedName); $tgt_tbox2.parent().parent().addClass(inputtedName); break; case "next": $tgt_tbox1.addClass(focusHeadName).removeClass(focusTailName).val(kanji); $tgt_tbox2.addClass(focusHeadName).removeClass(focusTailName).val(kana); $tgt_tbox1.parent().parent().addClass(inputtedName); $tgt_tbox2.parent().parent().addClass(inputtedName); break; default: $tgt_tbox1.val(kanji); $tgt_tbox2.val(kana); if(kanji === ""){ $tgt_tbox1.parent().parent().removeClass(inputtedName); } if(kana === ""){ $tgt_tbox2.parent().parent().removeClass(inputtedName); } break; } $.colorbox.close(); }; /* trigger ------------------------------- */ // モーダル内リスト選択制御 $divisionList.find("[data-display-kanji]").on("click", function(){ var self = $(this), val_kanji = self.data("display-kanji"), val_kana = self.data("display-kana"), val_pos = self.data("position"); entryProcessing1(val_kanji, val_kana, val_pos); }); }; /* * @plugin entryIncomeControl * - 入力画面2:ご本人収入の有無制御 */ $.entryIncomeControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), ctrlID1 = "rbtn_is_income", $ctrl_rbtn1 = $('[id^=' + ctrlID1 + ']'), $hiddenElm1 = $(".hide-income"), $toggleElm1 = $(".toggle-income"), slideSpeed = 150, initialVal1 = $('[id^=' + ctrlID1 + ']:checked').val(); if($ctrl_rbtn1.length === 0){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(val){ switch(val){ // 「収入あり」の場合 case "1": $hiddenElm1.slideDown(slideSpeed); $toggleElm1.slideUp(slideSpeed); break; // 「収入なし」の場合 case "0": $hiddenElm1.slideUp(slideSpeed); $toggleElm1.slideDown(slideSpeed); break; default: $hiddenElm1.slideUp(slideSpeed); $toggleElm1.slideDown(slideSpeed); break; } }; /* init ------------------------------- */ entryProcessing1(initialVal1); /* trigger ------------------------------- */ // radio制御 $ctrl_rbtn1.on("change", function(){ var self = $(this), val = self.val(); entryProcessing1(val); }); }; /* * @plugin entryHomecomingAddressControl * - 入力画面2:帰省先項目制御 */ $.entryHomecomingAddressControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-homecoming-address"), ctrlID1 = "rbtn_is_homecoming", $ctrl_rbtn1 = $('[id^=' + ctrlID1 + ']'), $dispElm1 = $('#homecoming_address_kanji1'), $hiddenElm1 = $('.hide', $container), $hiddenElm2 = $('.hide-02', $container), slideSpeed = 150, initialVal1 = $('[id^=' + ctrlID1 + ']:checked').val(), initialVal2 = $dispElm1.find(".readonlyBox").text(); if($container.length === 0){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(val1, val2){ switch(val1){ case "2": $hiddenElm2.slideDown(slideSpeed); if(val2 !== ""){ $hiddenElm1.slideDown(slideSpeed); } break; case "1": $hiddenElm1.slideUp(slideSpeed); $hiddenElm2.slideUp(slideSpeed); break; default: break; } }; /* init ------------------------------- */ entryProcessing1(initialVal1, initialVal2); /* trigger ------------------------------- */ // radio制御 $ctrl_rbtn1.on("change", function(){ var self = $(this), val1 = self.val(), val2 = $dispElm1.find(".readonlyBox").text(); entryProcessing1(val1, val2); }); }; /* @plugin entryHomecomingAddressControl02 * - 入力画面2:帰省先項目制御 */ $.entryHomecomingAddressControl02 = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-homecoming-address02"), ctrlID1 = "sbox_residence_status", $ctrl_sBox1 = $('[id^=' + ctrlID1 + ']'), slideSpeed = 150, initialVal1 = $ctrl_sBox1.val(); if($container.length === 0){ return false; } $container.hide(); /* function ------------------------------- */ var entryProcessing1 = function(val1){ if(val1 == "18"){ $container.slideDown(slideSpeed); } else { $container.slideUp(slideSpeed); } }; /* init ------------------------------- */ entryProcessing1(initialVal1); /* trigger ------------------------------- */ // radio制御 $ctrl_sBox1.on("change", function(){ var self = $(this), val1 = self.val(); entryProcessing1(val1); }); }; /* * @plugin entryCreditCashingControl * - 入力画面2:キャッシング項目制御 */ $.entryCreditCashingControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-credit-cashing"), ctrlID = "rbtn_credit_amount_cashing", $ctrl_rbtn1 = $('[id^=' + ctrlID + ']'), $ctrl_sbox1 = $('#sbox_credit_amount_cashing'), $hiddenElm = $('.hide', $container), $cashingAlert = $('.cashingWrap', $container), selectedName = "selected", errorName = "open-error", sysErrorName = "item-error", slideSpeed = 150, initialVal1 = $('[id^=' + ctrlID + ']:checked').val(); if($container.length === 0){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(val){ // 値が「その他」の場合 if(val === "1"){ // 出し分け制御 $hiddenElm.slideDown(slideSpeed); if(!$ctrl_sbox1.parent().parent().hasClass(sysErrorName)){ $ctrl_sbox1.focus(); } } else { // 出し分け制御 $hiddenElm.slideUp(slideSpeed); // 初期化 $("option", $ctrl_sbox1).prop("selected", false); $ctrl_sbox1.next(".choice").text($("option:first", $ctrl_sbox1).attr("label")); $ctrl_sbox1.parent().parent().removeClass(selectedName + ' ' + errorName); } }; /* init ------------------------------- */ entryProcessing1(initialVal1); /* trigger ------------------------------- */ // radio制御 $ctrl_rbtn1.on("change", function(){ var self = $(this), val = self.val(); entryProcessing1(val); }); }; /* * @plugin entryCreditRecieptControl * - 入力画面2:カードのお受け取り項目制御 */ $.entryCreditRecieptControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-credit-receipt"), ctrlID = "rbtn_credit_receipt_way", tgtID1 = "rbtn_credit_receipt_delivery", tgtID2_1 = "rbtn_credit_confirm_shop", tgtID2_2 = "rbtn_credit_confirm_delivery", $ctrl_rbtn1 = $('[id^=' + ctrlID + ']'), $tgt_sbox1 = $('#sbox_credit_receipt_shop'), $tgt_rbtn1 = $('[id^=' + tgtID1 + ']'), $tgt_rbtn2_1 = $('[id^=' + tgtID2_1 + ']'), $tgt_rbtn2_2 = $('[id^=' + tgtID2_2 + ']'), $ctrl_tbox2 = $('#tbox_credit_driver_license2'), $tgt_tbox2 = $('#tbox_credit_driver_license_confirm2'), $counter2 = $('[data-count="tbox_credit_driver_license2"]'), $hiddenElm = $('.hide', $container), $hiddenElm1 = $('.hide-01', $container), $hiddenElm2 = $('.hide-02', $container), $hiddenElm5 = $('.hide-05', $container), $hiddenElm6 = $('.hide-06', $container), $hiddenElm7 = $('.hide-07', $container), visitedName = "visited", inputedName = "inputted", selectedName = "selected", checkedName = "checked", checklessName = "checkless", errorName = "open-error", sysErrorName = "item-error", validateType = { req: "required", opt: "optional" }, slideSpeed = 150, designcard_flag = ($ctrl_rbtn1.length === 0) ? true : false, // 配達のみのデザインカードの場合 initialVal1 = $('[id^=' + ctrlID + ']:checked').val(), initialVal3 = $ctrl_tbox2.val(); if($container.length === 0){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(val, flag){ // 値によって出し分け switch(val){ // 「店舗・施設で受取」の場合 case "1": $hiddenElm1.slideDown(slideSpeed); $hiddenElm2.slideUp(slideSpeed); $hiddenElm5.slideDown(slideSpeed); $hiddenElm6.slideDown(slideSpeed); $hiddenElm7.slideDown(slideSpeed); $tgt_rbtn2_1.parent().slideDown(slideSpeed); $tgt_rbtn2_2.parent().slideUp(slideSpeed); if(flag === true){ $("#entry-residence_card").slideUp(slideSpeed); $("#entry-drivers-license").slideUp(slideSpeed); $("#entry-homecoming-address02").slideUp(slideSpeed); } // 初期化 $tgt_rbtn2_2.prop("checked", false); $tgt_rbtn2_2.parent().removeClass(checkedName + ' ' + checklessName); $tgt_rbtn1.prop("checked", false); $tgt_rbtn1.parent().removeClass(checkedName + ' ' + checklessName); if(flag === true){ $ctrl_tbox2.val(""); $ctrl_tbox2.parent().parent().removeClass(inputedName + ' ' + errorName); $tgt_tbox2.val(""); $tgt_tbox2.parent().parent().removeClass(inputedName + ' ' + errorName); residenceReset(); } break; // 「配達で受取」の場合 case "2": $hiddenElm1.slideUp(slideSpeed); $hiddenElm2.slideDown(slideSpeed); $hiddenElm5.slideUp(slideSpeed); $hiddenElm6.slideDown(slideSpeed); $hiddenElm7.slideDown(slideSpeed); $tgt_rbtn2_1.parent().slideUp(slideSpeed); $tgt_rbtn2_2.parent().slideDown(slideSpeed); if(flag === true){ $("#entry-residence_card").slideUp(slideSpeed); $("#entry-drivers-license").slideUp(slideSpeed); $("#entry-homecoming-address02").slideUp(slideSpeed); } // 初期化 $tgt_rbtn2_1.prop("checked", false); $tgt_rbtn2_1.parent().removeClass(checkedName + ' ' + checklessName); $("option", $tgt_sbox1).prop("selected", false); $tgt_sbox1.next(".choice").text($("option:first", $tgt_sbox1).text()); $tgt_sbox1.parent().parent().removeClass(selectedName + ' ' + errorName); if(flag === true){ $ctrl_tbox2.val(""); $ctrl_tbox2.parent().parent().removeClass(inputedName + ' ' + errorName); $tgt_tbox2.val(""); $tgt_tbox2.parent().parent().removeClass(inputedName + ' ' + errorName); residenceReset(); } break; default: $hiddenElm.slideUp(slideSpeed); $hiddenElm1.slideUp(slideSpeed); $hiddenElm2.slideUp(slideSpeed); $hiddenElm6.slideUp(slideSpeed); $hiddenElm7.slideUp(slideSpeed); $tgt_rbtn2_1.parent().slideUp(slideSpeed); $tgt_rbtn2_2.parent().slideUp(slideSpeed); break; } }; var entryProcessing3 = function(val){ if(!$ctrl_tbox2.parent().parent().hasClass(visitedName) && (val === "" || val === undefined)){ $counter2.parent().parent().css("opacity", 0); } else { $counter2.parent().parent().css("opacity", 1); } }; var residenceReset = function(){ $("#tbox_residence_num").val(""); $("#tbox_residence_num").parent().parent().removeClass(inputedName + ' ' + errorName); $("#tbox_name").val(""); $("#tbox_name").parent().parent().removeClass(inputedName + ' ' + errorName); $("option", $("#sbox_nationality")).prop("selected", false); $("#sbox_nationality").next(".choice").text($("option:first", $("#sbox_nationality")).text()); $("#sbox_nationality").parent().parent().removeClass(selectedName + ' ' + errorName); $("option", $("#sbox_residence_status")).prop("selected", false); $("#sbox_residence_status").next(".choice").text($("option:first", $("#sbox_residence_status")).text()); $("#sbox_residence_status").parent().parent().removeClass(errorName); $("option", $("#sbox_residence_year")).prop("selected", false); $("#sbox_residence_year").next(".choice").text($("option:first", $("#sbox_residence_year")).text()); $("#sbox_residence_year").parent().parent().removeClass(errorName); $("option", $("#sbox_residence_month")).prop("selected", false); $("#sbox_residence_month").next(".choice").text($("option:first", $("#sbox_residence_month")).text()); $("#sbox_residence_month").parent().parent().removeClass(errorName); $("option", $("#sbox_residence_day")).prop("selected", false); $("#sbox_residence_day").next(".choice").text($("option:first", $("#sbox_residence_day")).text()); $("#sbox_residence_day").parent().parent().removeClass(errorName); $("option", $("#sbox_permitted_year")).prop("selected", false); $("#sbox_permitted_year").next(".choice").text($("option:first", $("#sbox_permitted_year")).text()); $("#sbox_permitted_year").parent().parent().removeClass(errorName); $("option", $("#sbox_permitted_month")).prop("selected", false); $("#sbox_permitted_month").next(".choice").text($("option:first", $("#sbox_permitted_month")).text()); $("#sbox_permitted_month").parent().parent().removeClass(errorName); $("option", $("#sbox_permitted_day")).prop("selected", false); $("#sbox_permitted_day").next(".choice").text($("option:first", $("#sbox_permitted_day")).text()); $("#sbox_permitted_day").parent().parent().removeClass(errorName); $("#tbox_homecoming_zip02").val(""); $("#tbox_homecoming_zip02").parent().parent().removeClass(inputedName + ' ' + errorName); $("#tbox_tel_homecoming02_phone").val(""); $("#tbox_tel_homecoming02_phone").parent().parent().removeClass(inputedName + ' ' + errorName); }; /* init ------------------------------- */ if(!designcard_flag){ entryProcessing1(initialVal1, false); } else { $hiddenElm7.slideDown(slideSpeed); } entryProcessing3(initialVal3); /* trigger ------------------------------- */ if(!designcard_flag){ // radio制御 $ctrl_rbtn1.on("change", function(){ var self = $(this), val = $('[id^=' + ctrlID + ']:checked').val(); entryProcessing1(val, true); }); } else { $hiddenElm7.slideDown(slideSpeed); } // textbox制御 $ctrl_tbox2.on("focus", function(){ var self = $(this), wrap = self.parent().parent(), val = self.val(); wrap.addClass(visitedName); $counter2.parent().parent().css("opacity", 1); }); }; /* * @plugin entryMailAddressControl2 * - 入力画面2:メールアドレス項目制御(VOI用) */ $.entryMailAddressControl2 = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-mail-magazine"), tgtID1 = "tbox_mail_address_pc", tgtID2 = "tbox_mail_address_mb", $tgt_tbox1 = $("#" + tgtID1), $tgt_tbox2 = $("#" + tgtID2), validateType = { req: "required", opt: "optional" }, errorName = "open-error", initialVal1 = $tgt_tbox1.val(), initialVal2 = $tgt_tbox2.val(); if($tgt_tbox1.length === 0 || $tgt_tbox2.length === 0){ return false; } // VOIのみ適用 if(!(typeof voi_flag !== 'undefined' && voi_flag === true)){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(val1, val2){ if((val1 !== "") && (val2 === "")){ $tgt_tbox1.parent().parent().attr("data-validate", validateType.req); $tgt_tbox2.parent().parent().attr("data-validate", validateType.opt).removeClass(errorName); } else if((val1 === "") && (val2 !== "")){ $tgt_tbox1.parent().parent().attr("data-validate", validateType.opt).removeClass(errorName); $tgt_tbox2.parent().parent().attr("data-validate", validateType.req); } else if((val1 === "") && (val2 === "")){ $tgt_tbox1.parent().parent().attr("data-validate", validateType.req); $tgt_tbox2.parent().parent().attr("data-validate", validateType.req); } else { $tgt_tbox1.parent().parent().attr("data-validate", validateType.opt).removeClass(errorName); $tgt_tbox2.parent().parent().attr("data-validate", validateType.opt).removeClass(errorName); } }; /* init ------------------------------- */ entryProcessing1(initialVal1, initialVal2); /* trigger ------------------------------- */ // textbox制御 $('#' + tgtID1 + ', #' + tgtID2).on("change, blur, keyup", function(){ var val1 = $tgt_tbox1.val(), val2 = $tgt_tbox2.val(); entryProcessing1(val1, val2); }); }; /* * @plugin selectDesignSwitch * - カード選択時ボタン出し分け */ $.selectDesignSwitch = function(){ /* vars ------------------------------- */ var $elm = $("#select-design-switch"), $parents = $elm.parents(".colDesign"), $radio = $parents.find('input[type="radio"]'), $selected = $elm.children(".selected"), $unselected = $elm.children(".unselected"), $cardLink = $parents.find(".btnLink02.card"), checkNm = "checked"; if($elm.length === 0){ return false; } /* function ------------------------------- */ var buttonSwitch = function(){ var checkedLen = $($(":checked"),$radio).length; switch(checkedLen > 0){ case false: $unselected.show(); $selected.hide(); $cardLink.removeClass(checkNm); break; case true: $unselected.hide(); $selected.show(); $cardLink.addClass(checkNm); break; default: break; } }; /* trigger ------------------------------- */ buttonSwitch(); $radio.on("click",function(){ buttonSwitch(); }); }; /* * @plugin seachShopInput * - 入力画面1:店舗検索自動入力 */ $.seachShopInput = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), targetNm = "StoreName", $inp = $('input[name*="' + targetNm +'"]'); if($inp.length === 0){ return false; } // ローカルストレージの監視(iOS版Chrome用) checkStorage(); function checkStorage(){ if (localStorage.storeName){ var strNm = localStorage.storeName; var strCode = localStorage.storeCode; $("input[name*='StoreName']").val(strNm).change(); $("input[name*='StoreCode']").val(strCode).change(); $(".shopWrap > .searchShop").addClass("inputted"); localStorage.removeItem("storeName"); localStorage.removeItem("storeCode"); setTimeout(checkStorage, 1000); // 毎秒チェック }else{ setTimeout(checkStorage, 1000); // 毎秒チェック } } }; /* * @plugin btnColorChange * - 入力に伴うボタン色変更 */ $.fn.btnColorChange = function(){ /* element ------------------------------- */ var target = $(this); if(target.length === 0){ return false; } /* vars ------------------------------- */ var myMax = target.attr("maxlength"), className = "type01", neighborBtn = target.parent().parent().parent().next(".btn").find(".btnLink01"); /* function ------------------------------- */ var init = function(e){ var inpLen = e.val().length; if(inpLen >= myMax){ neighborBtn.addClass(className); } else { neighborBtn.removeClass(className); } }; /* init ------------------------------- */ init(target); target.on("blur, keyup",function(){ var self = $(this); init(self); }); }; /* * @plugin cationModalControl * - 店頭受け取り注意喚起モーダル制御 */ $.cationModalControl = function(){ var u = new EPOS_FORM.Util(); var elmName = "cb_caution_trigger", $elm = $("." + elmName), $trg = $("#" + elmName), $changeBtn = $("#change_credit_receipt_way2"), $changeRbtn = $("#rbtn_credit_receipt_way2"), $cautionClose = $(".cb_caution_close"); if($elm.length === 0){ return false; } // vars var cb_position, webkit = /webkit/, cb_speed = 300, cb_easing = "swing"; $elm.on("click",function(){ cb_position = $("#entry-credit-receipt").offset().top; $trg.click(); }); var closeScroll = function(){ /* スクロール位置調整 */ setTimeout(function(){ $("html, body").animate({ scrollTop: cb_position }, cb_speed, cb_easing); },300); }; $cautionClose.on("click",function(){ closeScroll(); return false; }); $changeBtn.on("click",function(){ $changeRbtn.click(); $.entryCreditRecieptControl(); $.colorbox.close(); closeScroll(); return false; }); }; /* * @plugin cationModalControl02 * - 店頭受け取り注意喚起モーダル制御 */ $.cationModalControl02 = function(){ var u = new EPOS_FORM.Util(); var elmName = "cb_caution_trigger02", $elm = $("." + elmName), $trg = $("#" + elmName), $changeBtn = $("#change_credit_receipt_way2"), $changeRbtn = $("#rbtn_credit_receipt_way2"), $cautionClose = $(".cb_caution_close"); if($elm.length === 0){ return false; } // vars var cb_position, webkit = /webkit/, cb_speed = 300, cb_easing = "swing"; $elm.on("click",function(){ cb_position = $("#entry-credit-receipt").offset().top; $trg.click(); }); var closeScroll = function(){ /* スクロール位置調整 */ setTimeout(function(){ $("html, body").animate({ scrollTop: cb_position }, cb_speed, cb_easing); },300); }; $cautionClose.on("click",function(){ closeScroll(); return false; }); $changeBtn.on("click",function(){ $changeRbtn.click(); $.entryCreditRecieptControl(); $.colorbox.close(); closeScroll(); return false; }); }; /* * @plugin cationModalControl * - 店頭受け取り注意喚起モーダル制御 */ $.cationModalControl03 = function(){ var u = new EPOS_FORM.Util(); var elmName = "cb_caution_trigger03", radioName = "rbtn_credit_confirm", $elm = $("." + elmName), $trg = $("#" + elmName), $radio = $("[id*="+ radioName +"]"), $resetBtn = $(".cb_inline_delivery_reciept_reset"), $cautionClose = $(".cb_caution_close"); if($elm.length === 0){ return false; } // vars var cb_position, webkit = /webkit/, cb_speed = 300, cb_easing = "swing"; $elm.on("click",function(){ cb_position = $("#entry-credit-receipt").offset().top; $trg.click(); }); var closeScroll = function(){ /* スクロール位置調整 */ setTimeout(function(){ $("html, body").animate({ scrollTop: cb_position }, cb_speed, cb_easing); },300); }; $cautionClose.on("click",function(){ closeScroll(); return false; }); $resetBtn.on("click",function(){ $("[id*="+ radioName +"]:checked").prop('checked', false); $('input').change(); $radio.parents(".radioWrap").removeClass("checked"); $radio.parents(".radioWrap").removeClass("checkless"); $.colorbox.close(); closeScroll(); }); }; /* * @plugin id_pwValidation * - 入力バリデーション */ $.id_pwValidation = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(); var c = { elm : '.js-id_pwValidation' }, $elm = $(c.elm), errorName = "open-error", sysErrorName = "item-error"; if($elm.length === 0){ return false; } var isValidationCheck = function (value) { var errorTxt01 = '【エラー】入力してください', errorTxt02 = '【エラー】8文字以上、20文字以下で入力してください', errorTxt03 = '【エラー】半角英字・数字の組み合わせで入力してください', errorTxt04 = '【エラー】ご登録できない文字が含まれています'; //入力が空のとき if(value.length === 0){ return { 'bool': false, 'text': errorTxt01} } //半角英数字と記号(.-_)以外だったとき if(value.match( /[^A-Za-z0-9_\-\.]+/g )){ return { 'bool': false, 'text': errorTxt04} } //半角英字と記号(.-_)のみだったとき if(!value.match( /[^A-Za-z_\-\.]+/g )){ return { 'bool': false, 'text': errorTxt03} } //半角数字と記号(.-_)のみだったとき if(!value.match( /[^0-9_\-\.]+/g )){ return { 'bool': false, 'text': errorTxt03} } //入力が8文字未満、20文字を超えるとき if(value.length < 8 || value.length > 20){ return { 'bool': false, 'text': errorTxt02} } return{'bool': true, 'text': null} } /* setting ------------------------------- */ /* trigger ------------------------------- */ $elm.each(function(){ var $self = $(this), $wrap = $self.closest('.inputWrap'), $errorBox = $wrap.find('.error'); $self.on('blur', function(){ var value = $self.val(), r = isValidationCheck(value); if(!r.bool){ $errorBox.text(r.text); $wrap.removeClass(sysErrorName).addClass(errorName); } }); }); }; /* * @plugin makePasswordVisible * - パスワードの表示・非表示切り替え */ $.makePasswordVisible = function(){ /* vars ------------------------------- */ var c = { elm : '.pwVisibleBtn', target : '.pwVisible', wrap : '.pwVisibleWrap' }, $elm = $(c.elm), onClass= 'visible'; if($elm.length === 0 || $(c.target).length === 0 || $(c.wrap).length === 0){ return false; } /* setting ------------------------------- */ /* trigger ------------------------------- */ $elm.each(function(){ var $self = $(this), $wrap = $self.closest(c.wrap), $target = $wrap.find(c.target); $self.on('click', function(){ if($self.hasClass(onClass)){ $target.attr('type', 'password'); $self.removeClass(onClass); }else{ $target.attr('type', 'text'); $self.addClass(onClass); } }); }); }; /* * @plugin entryDriverslicenseControl * - 入力画面2:運転免許証項目制御 */ $.entryDriverslicenseControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-drivers-license"), ctrlID1 = "rbtn_credit_confirm", $ctrl_sBox1 = $('[id^=' + ctrlID1 + ']'), slideSpeed = 150, initialVal1 = $('[id^=' + ctrlID1 + ']:checked').val(); if($container.length === 0){ return false; } $container.hide(); /* function ------------------------------- */ var entryProcessing1 = function(val1){ if(val1 == "01"){ $container.slideDown(slideSpeed); } else { $container.slideUp(slideSpeed); } }; /* init ------------------------------- */ entryProcessing1(initialVal1); /* trigger ------------------------------- */ // radio制御 $ctrl_sBox1.on("click", function(){ var self = $(this), val1 = self.val(); entryProcessing1(val1); }); }; /* * @plugin entryResidencecardControl * - 入力画面2:在留カード項目制御 */ $.entryResidencecardControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-residence_card"), ctrlID1 = "rbtn_credit_confirm", $ctrl_sBox1 = $('[id^=' + ctrlID1 + ']'), slideSpeed = 150, initialVal1 = $('[id^=' + ctrlID1 + ']:checked').val(); if($container.length === 0){ return false; } $container.hide(); /* function ------------------------------- */ var entryProcessing1 = function(val1){ if(val1 == "0601"){ $container.slideDown(slideSpeed); } else { $container.slideUp(slideSpeed); } }; /* init ------------------------------- */ entryProcessing1(initialVal1); /* trigger ------------------------------- */ // radio制御 $ctrl_sBox1.on("click", function(){ var self = $(this), val1 = self.val(); entryProcessing1(val1); }); }; /* * @plugin homecomingPhoneControl * - 入力画面2:帰省先電話番号制御 */ $.homecomingPhoneControl02 = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $tgt_tbox = $("#tbox_tel_homecoming02_phone"); if($tgt_tbox.length === 0){ return false; } $tgt_tbox.on("focus",function(){ var self = $(this), myVal = self.val(), selfID = self.attr("id"); if(myVal === ""){ self.val("+"); setTimeout(function(){ document.getElementById(selfID).setSelectionRange(1,1); },1); } }); $tgt_tbox.on("blur",function(){ var self = $(this), myVal = self.val(); if(myVal === "" || myVal === "+"){ self.val(""); self.parent().parent().removeClass("inputted").addClass("open-error"); } }); }; /* * @plugin designCardOrderRadio */ $.designCardOrderRadio = function(){ /* vars ------------------------------- */ var c = { elm : '#designCardOrderBox', target01 : '#SelectDesignBtn', target02 : '#SelectDesignBtn02' }, $elm = $(c.elm); if($elm.length === 0 || $(c.target01).length === 0 || $(c.target02).length === 0){ return false } /* setting ------------------------------- */ /* trigger ------------------------------- */ $('input[type="radio"]', $elm).on("click", function(){ $(c.target01).closest(".btnLink02").addClass('checkless'); $(c.target02).closest(".btnLink02").addClass('checkless'); }); }; $.addressValueControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $elm = $("#entry-mail-address .inputWrap"), $elm02 = $("#entry-mail-address .selectWrap"), $target = $elm.find('input[type="text"], input[type="number"], input[type="tel"], input[type="password"], textarea'), $target02 = $elm02.find('select'), $address01 = $('#tbox_mail_address'), $address02 = $('#tbox_mail_address_confirm'), $errorMessage01 = $('.errorMessage01'), $errorMessage02 = $('.errorMessage02'), $defInviElm = $(".epo-net, .mailSetting"); if($elm.length === 0){ return false; } // エポスNet登録とメールのご設定は初期非表示 // メールアドレスのエラーメッセージも初期非表示 //$defInviElm.hide(); $errorMessage01.hide(); $errorMessage02.hide(); /* 判定処理 */ valCheck = function(){ var addressId01 = $address01.val(), addDmainId01 = $('#sbox_mail_domain_pc').val(), addressId02 = $address02.val(), addDmainId02 = $('#sbox_mail_domain_pc_confirm').val(), addDmainId03 = $('#tbox_mail_career_domain').val(), addDmainId04 = $('#tbox_mail_career_domain_confirm').val(); if(addressId02 === "" || addressId01 === addressId02 && addDmainId01 === addDmainId02 && addDmainId01 !== "その他" || addressId01 === addressId02 && addDmainId01 === "その他" && addDmainId02 === "その他" && addDmainId03 !== "" && addDmainId03 === addDmainId04){ $errorMessage01.hide(); } else { $errorMessage01.show(); } }; /* trigger ------------------------------- */ /* フォーカス制御 */ $elm.find('input[type="text"], input[type="number"], input[type="tel"], input[type="password"], textarea').each(function(){ var self = $(this), selfID = self.attr("id"), wrap = self.parent().parent(), letterNum; }); // input制御 $elm.find('input').each(function(){ var self = $(this); self.on("change", function(){ valCheck(); }); }); // selectbox制御 $elm02.find('select').each(function(){ var self = $(this); self.on("change", function(){ valCheck(); }); }); }; /* * @plugin entryMailAddressControl * - 入力画面6:メールアドレス項目制御 */ $.entryMailAddressControl3 = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $("#entry-mail-address"), ctrlID1 = "rbtn_mail_career", $tgt_sbox1 = $("#sbox_mail_domain_pc"), $tgt_sbox2 = $("#sbox_mail_domain_pc_confirm"), $tgt_tbox1 = $("#tbox_mail_address"), $tgt_tbox2 = $("#tbox_mail_address_confirm"), $hiddenElm1 = $('.hide-03', $container), $hiddenElm2 = $('.hide-04', $container), $disp_domain1 = $('#mail_career_domain'), $disp_domain2 = $('#mail_career_domain_confirm'), selectedName = "selected", errorName = "open-error", sysErrorName = "item-error", slideSpeed = 150, initialVal1 = $('option:selected', $tgt_sbox1).val(), initialVal2 = $('option:selected', $tgt_sbox2).val(); if($container.length === 0){ return false; } // VOI以外に適用 if(typeof voi_flag !== 'undefined' && voi_flag === true){ return false; } /* function ------------------------------- */ var entryProcessing1 = function(val){ switch(val){ case "": $hiddenElm1.slideUp(slideSpeed); break; case "その他": $hiddenElm1.slideDown(slideSpeed); break; default: $hiddenElm1.slideUp(slideSpeed); break; } }; var entryProcessing2 = function(val02){ switch(val02){ case "": $hiddenElm2.slideUp(slideSpeed); break; case "その他": $hiddenElm2.slideDown(slideSpeed); break; default: $hiddenElm2.slideUp(slideSpeed); break; } }; /* init ------------------------------- */ entryProcessing1(initialVal1); entryProcessing2(initialVal2); // ロード後にフォーカスを外して、上部へ /* trigger ------------------------------- */ // selectbox制御 $tgt_sbox1.on("change", function(){ if(loadFlag == 0){ var self = $(this), val01 = $("option:selected", $tgt_sbox1).val(); if(val01 !== undefined && val01 !== "" && val01 !== "0"){ entryProcessing1(val01); if(!$tgt_tbox1.parent().parent().hasClass(sysErrorName)){ if(val01 === "その他"){ $disp_domain1.focus(); }else{ $tgt_tbox1.focus(); } } } } }); $tgt_sbox2.on("change", function(){ if(loadFlag == 0){ var self = $(this), val02 = $("option:selected", $tgt_sbox2).val(); if(val02 !== undefined && val02 !== "" && val02 !== "0"){ entryProcessing2(val02); if(!$tgt_tbox2.parent().parent().hasClass(sysErrorName)){ if(val02 === "その他"){ $disp_domain2.focus(); }else{ $tgt_tbox2.focus(); } } } } }); }; /* * @plugin embossCheckControl * - 入力バリデーション */ $.embossCheckControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(); var c = { container : '#entry-emboss', elm : '.js-embossCheckContent', trigger : '.js-embossCheckTrigger', disabled : 'js-embossDisabled', modal : '.cb_emboss_inline01', modal_anc_btn : '.js-embossAncBtn', modal_disabled_btn : '.js-embossDisabledBtn', anc_content01 : '.js-embossAncContent01', anc_content02 : '.js-embossAncContent02', error_box : '.js-embossErrorBox', error_elm : '.js-embossError' }, $container = $(c.container), $elm = $(c.elm), $trigger= $(c.trigger), $modal = $(c.modal), $modalAncBtn = $(c.modal_anc_btn), $modaldisabledBtn = $(c.modal_disabled_btn), $ancContent01 = $(c.anc_content01), $ancContent02 = $(c.anc_content02), $errorBox = $(c.error_box), $errorElm = $(c.error_elm), checkedName = "checked"; if($elm.length === 0){ return false; } /* setting ------------------------------- */ if($modal.length !== 0){ $.execColorbox({ targetElm: ".cb_emboss_inline01", colorboxName: "cb_layout01", inline: true, relName: false, pc_width: "850px", tl_width: "90%", sp_width: "100%", pc_height: false, tl_height: false, sp_height: "100%" }); } $errorBox.hide(); if($('.'+c.disabled).prop('checked')){ $elm.attr('disabled', true); $errorBox.show(); } /* trigger ------------------------------- */ $trigger.each(function(){ var $self = $(this); $self.on('click', function(){ if($self.hasClass(c.disabled) && $self.prop('checked')){ if($elm.prop('checked')){ $errorBox.show(); $modal.click(); } $elm.attr('disabled', true); } else { $errorBox.hide(); $elm.attr('disabled', false); } }); }); $elm.each(function(){ var $self = $(this); $self.parent('label').on('click', function(){ if($self.attr('disabled') == "disabled" && $self.prop('checked') == false){ $self.prop('checked', true); $self.change(); $self.parent().addClass(checkedName); $errorBox.show(); $modal.click(); } else if($self.attr('disabled') == "disabled" && $self.prop('checked') == true){ $self.parent().removeClass(checkedName); $self.prop('checked', false); $self.change(); $errorBox.hide(); } }); }); $modalAncBtn.each(function(){ var $self = $(this); $self.on('click', function(){ $.colorbox.close(); setTimeout(function(){ $("html, body").animate({ scrollTop: $ancContent01.offset().top }, 300, "swing"); if($ancContent01.hasClass('entryIndex') && !$ancContent01.hasClass('active')){ $ancContent01.click(); } }, 1000) }); }); $modaldisabledBtn.each(function(){ var $self = $(this); $self.on('click', function(){ $.colorbox.close(); $elm.parent().removeClass(checkedName); $elm.prop('checked', false); $elm.change(); $errorBox.hide(); setTimeout(function(){ $("html, body").animate({ scrollTop: $ancContent02.offset().top }, 300, "swing"); if($ancContent02.hasClass('entryIndex') && !$ancContent02.hasClass('active')){ $ancContent02.click(); } }, 1000) }); }); }; /* * @plugin apaIdPass * - */ $.apaIdPass = function(){ var u = new EPOS_FORM.Util(); /* vars ------------------------------- */ var $dispElm1 = $('#tbox_apa_num'), $dispElm2 = $('#tbox_apa_pw'), $resultElm =$(".apaResultWrap"), $form = $(".formWrap form"), $buttonElm1 = $(".js-apaResult--submit", $resultElm), $buttonElm2 = $(".js-apaResult--back", $resultElm), $nextStepBtn = $("#nextStepBtn", $form), slideSpeed = 150, MODAL_PC_W = "850px", MODAL_PC_H = "auto", MODAL_SP_W = "90%", MODAL_SP_H = "auto", webkit = /webkit/, speed = 300, easing = "swing", isAddrConfirm; if($resultElm.length === 0){ return false; } /* function ------------------------------- */ var addressConfirmModal = function(){ // 確定ボタンの初期化 var setModalH,setModalH; if(!u.isRangeSP()){ setModalW = MODAL_PC_W; setModalH = MODAL_PC_H; } else { setModalW = MODAL_SP_W; setModalH = MODAL_SP_H; } $.colorbox({ className:"cb_layout01 type-apa type-black", inline: true, opacity:0.5, width: setModalW, height: setModalH, href: $resultElm, fixed: true, overlayClose: false, escKey: false, closeButton: false, }); u.isWindowSizeCheck(function(){ $.colorbox.resize({ width: setModalW }); }); }; /* setting ------------------------------- */ /* trigger ------------------------------- */ $buttonElm1.on('click', function(){ isAddrConfirm = true $form.submit(); }); $buttonElm2.on('click', function(){ $.colorbox.close(); }); $dispElm1.on('change blur', function(){ if($dispElm1.val().length !== 0 && $dispElm2.val().length !== 0){ isAddrConfirm = true }else{ isAddrConfirm = false } }); $dispElm2.on('change blur', function(){ if($dispElm1.val().length !== 0 && $dispElm2.val().length !== 0){ isAddrConfirm = true }else{ isAddrConfirm = false } }); var throughFlag = false; $nextStepBtn.on("click", function(){ throughFlag = true; }); // submit時に住所モーダル展開 $form.submit(function(){ if(throughFlag != true){throughFlag = false; return true} if($dispElm1.val().length !== 0 && $dispElm2.val().length !== 0){ isAddrConfirm = true } if(isAddrConfirm === true){ throughFlag = false; return true; } else { addressConfirmModal(); return false; } return false; }); }; $.equalHeightVertical = function(){ var u = new EPOS_FORM.Util(); /* vars ------------------------------- */ var $elm = $(".js-equalHeightVertical"), $children = $elm.children(), childBaseName = "js-eqVerticalChild"; if($elm.length === 0 || $children.length < 2){ return false; } /* function ------------------------------- */ /* 各要素ごとにグループ化 */ var grouping = function(elm){ var $groupedChildren = elm.find('*[class*=' + childBaseName + ']'), classNames = {}, groups = []; $groupedChildren.each(function(){ var splitClass = $(this).attr("class").split(" "), splitClassNum = splitClass.length, newClassName; for(var i = 0; i < splitClassNum; i++){ newClassName = splitClass[i].match(RegExp(childBaseName + "[a-z0-9]+", 'i')); if(!newClassName){ continue; } else { newClassName.toString(); classNames[newClassName] = newClassName; } } }); for(var c in classNames){ groups.push(elm.find("." + c)); } groups.push(elm.children()); return groups; }; /* 各要素の高さを揃える */ var equalHeight = function(elm){ var maxHeight = 0; elm.css("height", "auto"); elm.each(function(){ if($(this).outerHeight() > maxHeight){ maxHeight = $(this).outerHeight(); } }); return elm.outerHeight(maxHeight); }; /* init */ var init = function(){ $elm.each(function(){ var $self = $(this), groups = grouping($self), h = [], child = []; $.each(groups, function(){ var $group = $(this); $group.each(function(i){ $(this).css("height", "auto"); h[i] = $(this).outerHeight(); child.push(this); }); equalHeight($(child)); child = []; }); if(child.length > 1){ equalHeight($(child)); } }) }; /* init ------------------------------- */ init(); u.isWindowSizeCheck(init); } /* * @plugin storageCheck * - */ $.storageCheck = function(){ var $elm = $('.js-checkboxStorage'); if(!$elm.length) return false; // 初期化とイベント設定を同時に実行 $elm.each(function() { var $self = $(this); var storageName = $self.data('local-storage'); var isChecked = localStorage.getItem(storageName) === 'true'; // 状態を設定 $self.prop('checked', isChecked).closest('label').toggleClass('checked', isChecked); }).on('click', function() { var $self = $(this); localStorage.setItem($self.data('local-storage'), $self.prop('checked')); }); }; })(jQuery);