/********************************************* * form.js * ------------------------------------------- * @init * @plugin * @requires * - jquery.js *********************************************/ /* ------------------------------------------- * @init ------------------------------------------- */ $(function () { var u = new EPOS_FORM.Util(); $.inputValidate(); $.tooltip(); $.letterCounter(); $.focusChain(); $.makePasswordVisible(); $.entryAge(); $.entryResidence(); $.entryDriversLicense(); $.entryCustomerAddress(); $.entryCreditPin(); $.entryIdPw(); $.entryCreditReceipt(); $.entryHomecomingAddress(); $.entryIncomeControl(); $.cationModalControl(); $.cationModalControl02(); $.cationModalControl03(); $.embossCheckControl(); $.entryCreditCashingControl(); $.entryHomecomingControl(); $.entryHomecomingAddressControl(); u.$win.on("load", function(){ $.entryMailAddress(); $.equalHeightVertical(); }); }); /* ------------------------------------------- * @plugin ------------------------------------------- */ (function($){ $.inputValidate = function(){ var u = new EPOS_FORM.Util(); var className = { entryFactor: "entry", entryIndex: "entry-index", entryPanel: "entry-panel", inputFactor: '[class*="input-area--"]', noValidate: "input-custum_validate", inputted: "input-inputted", focused: "input-focused", selected: "input-selected", checked: "input-checked", checkedWrap: "input-checkbox--wrap", complete: "input-complete", visited: "input-visited", error: "input-error", sys_error: "item-error", choice: "input-choice", }; /*function --------------------------------*/ var module = { /*汎用チェック*/ isEntryEmpty: function(element){ element = element || ""; if(element === ""){return false} if(element.val().length !== 0){ return false }else { return true } }, isEntryChecked: function(element, checktype){ element = element || ""; checktype = checktype || ""; //bool または int //省略可 if(element === ""){return false} var elementType = element.attr("type") if(elementType == 'checkbox'){ var $wrap = element.closest('.' + className.checkedWrap); switch (checktype){ case 'int': if(element.prop("checked")){ return 2 //elementがcheckされていたとき }else if($('input[type="checkbox"]:checked', $wrap).length !== 0){ return 1 //element以外がcheckされていたとき } return 0 case 'bool': default: if($('input[type="checkbox"]:checked', $wrap).length !== 0){ return true } return false } } if(elementType == 'radio'){ var name = element.attr("name"); switch (checktype){ case 'int': if(element.prop("checked")){ return 2 //elementがcheckされていたとき }else if($('input[name="' + name + '"]:checked').length !== 0){ return 1 //element以外がcheckされていたとき } return 0 case 'bool': default: if($('input[name="' + name + '"]:checked').length !== 0){ return true } return false } } }, isEntryNumberOfCharacters: function(element,max,min){ element = element || ""; max = Number(max) || ""; //整数 //省略不可(空にすることで省略可) min = Number(min) || ""; //整数 //省略可 if(element === ""){return false} var value = element.val(); if(max !== ""){ if(value > max){ return false } } if(min !== ""){ if(value < min){ return false } } return true }, isEntryRegexp: function(element,regexp){ element = element || ""; regexp = regexp || "";//正規表現 if(element === "" || regexp === ""){return false} if(element.val().match(regexp)){ return false } return true }, /*汎用状態変更処理*/ textboxChange: function(element, eventName){ element = element || ""; eventName = eventName || ""; if(element === ""){return} switch (eventName){ case 'focus': case 'click': module.setInputFocused(element); module.resetSysError(element); break; case 'blur' : module.setInputFocused(element, true); module.setInputVisited(element); if(!module.isEntryEmpty(element)){ module.setInputInputted(element); }else{ module.setInputInputted(element, true); } break; default: if(!module.isEntryEmpty(element)){ module.setInputInputted(element); module.setInputVisited(element); }else{ module.setInputInputted(element, true); } break; } }, selectChange: function(element, eventName){ element = element || ""; eventName = eventName || ""; if(element === ""){return} switch (eventName){ case 'focus': module.setInputFocused(element); module.resetSysError(element); break; case 'change': module.setSelectChoice(element); break; case 'blur': module.setInputFocused(element, true); module.setInputVisited(element); if(!module.isEntryEmpty(element)){ module.setInputInputted(element); }else{ module.setInputInputted(element, true); } break; default: module.setSelectChoice(element); if(!module.isEntryEmpty(element)){ module.setInputInputted(element); module.setInputVisited(element); }else{ module.setInputInputted(element, true); } break; } }, radioChange: function(element, eventName){ element = element || ""; eventName = eventName || "" if(element === ""){ return} var name = element.attr('name') switch (eventName){ case 'click': if(module.isEntryChecked(element, 'int') == 2){ module.setInputChecked($('input[name="' + name + '"]'), true); module.setInputChecked(element); module.setInputVisited($('input[name="' + name + '"]')); } module.resetSysError($('input[name="' + name + '"]')); break; default: module.setInputChecked($('input[name="' + name + '"]'), true); module.setInputChecked($('input[name="' + name + '"]:checked')); if(module.isEntryChecked(element)){ module.setInputVisited($('input[name="' + name + '"]')); } break; } }, checkboxChange: function(element, eventName){ element = element || ""; eventName = eventName || "" if(element === ""){ return} switch (eventName){ case 'click': if(module.isEntryChecked(element, 'int') == 2){ module.setInputChecked(element); module.setInputVisited(element); }else{ module.setInputChecked(element, true); } // $('.input-area--check').parents('.'+className.checkedWrap).find('input[type="checkbox"]').each(function(){ var self = $(this); self.parents('.input-area--check').removeClass('.'+className.sys_error); module.resetSysError(self); }) break; default: if(module.isEntryChecked(element, 'int') == 2){ module.setInputChecked(element); module.setInputVisited(element); }else{ module.setInputChecked(element, true); } break; } }, entryAccodion: function(element, remove){ element = element || ""; remove = remove || ""; if(element === ""){return} var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), $entryPanel = $entry.find('.' + className.entryPanel), closeClass = 'close'; switch (remove){ case true: $entryIndex.off('click') $entryPanel.show(300); $entryPanel.css(''); $entryIndex.removeClass(closeClass); break; default: $entryIndex.off('click').on('click', function(){ if(!$(this).hasClass(className.complete) && !$(this).hasClass('input-optional')){ setTimeout(function(){ $entryPanel.stop().show(300); $entryIndex.removeClass(closeClass); }, 100) return } if($entryIndex.hasClass(closeClass)){ setTimeout(function(){ $entryPanel.stop().slideDown(300); $entryIndex.removeClass(closeClass); }, 100) }else{ $entryPanel.stop().slideUp(300); setTimeout(function(){ $entryPanel.css(''); }, 300) $entryIndex.addClass(closeClass); } }); break; } }, entryChange: function(element){ element = element || ""; if(element === ""){return} var $entry = element, $inputArea = $entry.find(className.inputFactor + '[data-validate="required"]'), $entryIndex = $entry.find('.' + className.entryIndex), enterFlag = 0, errorFlag = 0, sysErrorFlag = 0; if($inputArea.length == 0){ module.entryAccodion($entry); return } $inputArea.each(function(){ var $self = $(this), $input = $self.find('input'), $textarea = $self.find('textarea'), $select = $self.find('select'); //input if($input.length !== 0){ switch($input.attr('type')){ case 'text': case 'password': case 'tel': case 'number': if(module.isEntryEmpty($input)){ errorFlag++; } break; case 'radio': if(!module.isEntryChecked($input)){ errorFlag++; } break; case 'checkbox': if(!module.isEntryChecked($input)){ errorFlag++; } break; } } //textarea if($textarea.length !== 0){ if(module.isEntryEmpty($textarea)){ errorFlag++; } } //select if($select.length !== 0){ if(module.isEntryEmpty($select)){ errorFlag++; } } if($input.attr('type') == 'checkbox'){ if($self.closest('.' + className.checkedWrap).find(className.inputFactor + '.' + className.visited + '[data-validate="required"]').length !== 0){ enterFlag++ } }else if($self.hasClass(className.visited)){ enterFlag++ } }); $entry.find(className.inputFactor).each(function(){ var $self = $(this); if($self.hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } }); if($inputArea.length == enterFlag && errorFlag === 0){ module.setEntryComplete($entryIndex); module.setEntryError($entryIndex, true); module.entryAccodion($entry); }else if(sysErrorFlag !== 0 || ($inputArea.length == enterFlag && errorFlag !== 0)){ module.setEntryComplete($entryIndex, true); module.setEntryError($entryIndex); module.entryAccodion($entry, true); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryComplete($entryIndex, true); module.setEntryError($entryIndex, true); } }, /*エラー表示処理*/ textboxError: function(element){ element = element || ""; if(element === ""){ return} if(element.closest('[data-validate]').data('validate') == 'required'){ var errorFlag = 0; if(module.isEntryEmpty(element)){ errorFlag++ } if(errorFlag !== 0){ module.setInputError(element); }else{ module.setInputError(element, true); } } }, selectError: function(element){ element = element || ""; if(element === ""){return} if(element.closest('[data-validate]').data('validate') == 'required'){ /*エラー処理*/ var errorFlag = 0; if(module.isEntryEmpty(element)){ errorFlag++ } if(errorFlag !== 0){ module.setInputError(element); }else{ module.setInputError(element, true); } } }, setInputInputted: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.closest(className.inputFactor).removeClass(className.inputted); }else{ element.closest(className.inputFactor).addClass(className.inputted); } }, setInputFocused: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.closest(className.inputFactor).removeClass(className.focused); }else{ element.closest(className.inputFactor).addClass(className.focused); } }, setInputSelected: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.closest(className.inputFactor).removeClass(className.selected); }else{ element.closest(className.inputFactor).addClass(className.selected); } }, setInputChecked: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.closest(className.inputFactor).removeClass(className.checked); }else{ element.closest(className.inputFactor).addClass(className.checked); } }, setInputVisited: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.closest(className.inputFactor).removeClass(className.visited); }else{ element.closest(className.inputFactor).addClass(className.visited); } }, setInputError: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.closest(className.inputFactor).removeClass(className.error); }else{ element.closest(className.inputFactor).addClass(className.error); } }, resetSysError: function(element){ element = element || ""; if(element === ""){return} element.closest(className.inputFactor).removeClass(className.sys_error); }, setEntryComplete: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.removeClass(className.complete); }else{ element.addClass(className.complete); } }, setEntryError: function(element, remove){ element = element || ""; if(element === ""){return} if(remove){ element.removeClass(className.error); }else{ element.addClass(className.error); } }, setSelectChoice: function(element){ element = element || ""; if(element === ""){return} var selectTextString = $("option:selected", element).text(); element.closest(className.inputFactor).find('.' + className.choice).text(selectTextString); }, setSubmitButton: function(flag){ var $submit = $('.input-area--submit[data-validate="required"] > input'), ableText = $submit.attr('data-able'), disabledText = $submit.attr('data-disable'); if(flag){ $submit.val(ableText); $submit.prop("disabled", false); }else{ $submit.val(disabledText); $submit.prop("disabled", true); } }, /*個別*/ customerTel: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), cell_ctrlID = 'tbox_tel_cell_phone', house_ctrlID = 'tbox_tel_house_phone', priority_ctrlID = 'rbtn_tel_priority', $cell = $('[id^="'+cell_ctrlID+'"]'), $house = $('[id^="'+house_ctrlID+'"]'), $priority = $('[id^="'+priority_ctrlID+'"]:checked'), $target = "", errorFlag = 0, sysErrorFlag = 0; if($entry.length == 0){return} switch($priority.val()){ case '1': //携帯電話 $target = $cell; break; case '0': //自宅電話 $target = $house; break; } if($target.length == 0){ $('[id^="'+priority_ctrlID+'"]').closest(className.inputFactor).each(function(){ var $self = $(this); if($self.hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); }else{ $target.each(function(){ var $self = $(this); if($target == $cell) { $house.each(function(){ var $self = $(this); module.setInputError($self, true); }); }else if($target == $house) { $cell.each(function(){ var $self = $(this); module.setInputError($self, true); }); } if(module.isEntryEmpty($self)){ errorFlag++ } if($self.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); $('[id^="'+priority_ctrlID+'"]').closest(className.inputFactor).each(function(){ var $self = $(this); if($self.hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); } if(errorFlag == 0 && module.isEntryCustomerTel()){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !==0 || (errorFlag != 0 && !module.isEntryCustomerTel())){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, creditCashing: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), ctrlID1 = 'rbtn_credit_amount_cashing', $ctrl_rbtn = $('[id^="'+ctrlID1+'"]'), $tgt_sbox = $('#sbox_credit_amount_cashing'), elementLength = 0, enterFlag =0, errorFlag =0, sysErrorFlag =0; if($entry.length == 0){return} if(!module.isEntryChecked($ctrl_rbtn)){return} $ctrl_rbtn.each(function(){ var $self = $(this); elementLength++; if(module.isEntryChecked($self)){ enterFlag++ } if($self.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); if($ctrl_rbtn.filter(':checked').val() == '1'){ elementLength++; if($tgt_sbox.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++ } if(module.isEntryEmpty($tgt_sbox)){ errorFlag++ } if($tgt_sbox.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } } if(!module.isEntryCreditCashing()){ errorFlag++ } if(errorFlag === 0 && elementLength == enterFlag){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !== 0 || (elementLength == enterFlag && errorFlag !== 0)){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, creditPin: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), $inputFacter = $entry.find(className.inputFactor), enterFlag =0, errorFlag =0, sysErrorFlag =0; if($entry.length == 0){return} $inputFacter.each(function(){ if($(this).hasClass(className.visited)){ enterFlag++ } if($(this).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); if(!module.isEntryCreditPin()){ errorFlag++ } if($inputFacter.length == enterFlag && errorFlag === 0){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !== 0 || ($inputFacter.length == enterFlag && errorFlag !== 0)){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, loginPw: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), $inputFacter = $entry.find(className.inputFactor), enterFlag =0, errorFlag =0, sysErrorFlag =0; if($entry.length == 0){return} $inputFacter.each(function(){ if($(this).hasClass(className.visited)){ enterFlag++ } if($(this).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); if(!module.isEntryLoginPw()){ errorFlag++ } if($inputFacter.length == enterFlag && errorFlag === 0){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !== 0 || ($inputFacter.length == enterFlag && errorFlag !== 0)){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, mailAddress: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), $inputFacter = $entry.find(className.inputFactor), enterFlag =0, errorFlag =0, sysErrorFlag =0; if($entry.length == 0){return} $inputFacter.each(function(){ if($(this).hasClass(className.visited)){ enterFlag++ } if($(this).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); if(!module.isEntryMailAddress()){ errorFlag++ } if($inputFacter.length == enterFlag && errorFlag === 0){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !== 0 || ($inputFacter.length == enterFlag && errorFlag !== 0)){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, // creditReceipt: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), $inputFacter = $entry.find(className.inputFactor), enterFlag =0, errorFlag =0, sysErrorFlag =0, $tgt_rbtn01 = $('#rbtn_credit_receipt_way1'), $tgt_rbtn02 = $('#rbtn_credit_receipt_way2'), $tgt_sbox = $('#sbox_credit_receipt_shop'), ctrlId01 = 'rbtn_credit_confirm_shop', ctrlId02 = 'rbtn_credit_confirm_delivery', $ctrl_rbtn01 = $('[id*="' + ctrlId01 + '"]'), $ctrl_rbtn02 = $('[id*="' + ctrlId02 + '"]'), receipt_way ="0", elementLength = 0; if($entry.length == 0){return} if($tgt_rbtn01.length === 0 || $tgt_rbtn02.length === 0){return false} // if($tgt_rbtn01.prop('checked')){ // receipt_way = '1' // } // if($tgt_rbtn02.prop('checked')){ // receipt_way = '2' // } receipt_way = '2' // add 250528 var $residence_chk_sbox1 = $("#sbox_residence_year"), $residence_chk_sbox2 = $("#sbox_residence_month"), $residence_chk_sbox3 = $("#sbox_residence_day"), $residence_chk_sbox4 = $("#sbox_residence_status"), $residence_chk_sbox5 = $("#sbox_permitted_year"), $residence_chk_sbox6 = $("#sbox_permitted_month"), $residence_chk_sbox7 = $("#sbox_permitted_day"), $residence_chk_sbox8 = $("#sbox_nationality"), $residence_chk_tbox1 = $("#tbox_residence_num"), $residence_chk_tbox2 = $("#tbox_name"), $residence_chk_tbox3 = $("#tbox_homecoming_zip02"), $residence_chk_tbox4 = $("#tbox_tel_homecoming02_phone"), $driver_license_tbox1 = $("#tbox_credit_driver_license2"), $driver_license_tbox2 = $("#tbox_credit_driver_license_confirm2"); switch(receipt_way){ case '1': elementLength = 2; if($tgt_sbox.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++ } if(module.isEntryEmpty($tgt_sbox)){ errorFlag++ } if($tgt_sbox.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if(module.isEntryChecked($ctrl_rbtn01)){ enterFlag++ } $ctrl_rbtn01.each(function(){ if($(this).closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); if($("#rbtn_credit_confirm_shop01").prop('checked')){ if($driver_license_tbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($driver_license_tbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } } if($("#rbtn_credit_confirm_shop0601").prop('checked')){ elementLength = elementLength + 10; if($residence_chk_sbox1.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox2.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox3.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox3.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox5.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox5.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox6.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox6.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox7.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox7.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox4.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox4.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox8.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox8.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_tbox1.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_tbox2.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox4.val() == "18"){ elementLength = elementLength + 2; if($residence_chk_tbox3.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox3.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_tbox4.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox4.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } } } break; case '2': elementLength = 1; if(module.isEntryChecked($ctrl_rbtn02)){ enterFlag++ } $ctrl_rbtn02.each(function(){ if($(this).closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); if($("#rbtn_credit_confirm_delivery01").prop('checked')){ if($driver_license_tbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($driver_license_tbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } } if($("#rbtn_credit_confirm_delivery0601").prop('checked')){ elementLength = elementLength + 10; if($residence_chk_sbox1.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ enterFlag++ } if($residence_chk_sbox2.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ enterFlag++ } if($residence_chk_sbox3.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox3.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox5.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox5.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox6.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox6.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox7.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox7.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox4.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox4.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox8.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox8.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_tbox1.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_tbox2.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_sbox4.val() == "18"){ elementLength = elementLength + 2; if($residence_chk_tbox3.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox3.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($residence_chk_tbox4.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox4.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } } } break; default : elementLength = 1; if($tgt_rbtn01.closest(className.inputFactor).hasClass(className.sys_error) || $tgt_rbtn02.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } break; } if(!module.isEntryCreditReceipt() || !module.isEntryResidenceCard()){ errorFlag++ } if(elementLength == enterFlag && errorFlag === 0){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !== 0 || (elementLength == enterFlag && errorFlag !== 0)){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, creditReceiptDelivery: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), $inputFacter = $entry.find(className.inputFactor), enterFlag =0, errorFlag =0, sysErrorFlag =0, ctrlId02 = 'rbtn_credit_confirm_delivery', $ctrl_rbtn02 = $('[id*="' + ctrlId02 + '"]'), elementLength = 0; if($entry.length == 0){return} if($ctrl_rbtn02.length === 0){return false} var $residence_chk_sbox1 = $("#sbox_residence_year"), $residence_chk_sbox2 = $("#sbox_residence_month"), $residence_chk_sbox3 = $("#sbox_residence_day"), $residence_chk_sbox4 = $("#sbox_residence_status"), $residence_chk_sbox5 = $("#sbox_permitted_year"), $residence_chk_sbox6 = $("#sbox_permitted_month"), $residence_chk_sbox7 = $("#sbox_permitted_day"), $residence_chk_sbox8 = $("#sbox_nationality"), $residence_chk_tbox1 = $("#tbox_residence_num"), $residence_chk_tbox2 = $("#tbox_name"), $residence_chk_tbox3 = $("#tbox_homecoming_zip02"), $residence_chk_tbox4 = $("#tbox_tel_homecoming02_phone"), $driver_license_tbox1 = $("#tbox_credit_driver_license2"), $driver_license_tbox2 = $("#tbox_credit_driver_license_confirm2"); elementLength = 1; if(module.isEntryChecked($ctrl_rbtn02)){ enterFlag++ } $ctrl_rbtn02.each(function(){ if($(this).closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } }); if($("#rbtn_credit_confirm_delivery01").prop('checked')){ if($driver_license_tbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($driver_license_tbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } } if($("#rbtn_credit_confirm_delivery0601").prop('checked')){ elementLength = elementLength + 10; if($residence_chk_sbox1.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox2.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox3.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox3.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox5.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox5.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox6.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox6.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox7.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox7.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox8.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox8.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox4.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_sbox4.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_tbox1.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox1.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_tbox2.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox2.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_sbox4.val() == "18"){ elementLength = elementLength + 2; if($residence_chk_tbox3.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox3.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } if($residence_chk_tbox4.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++; } if($residence_chk_tbox4.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++; sysErrorFlag++; } } } if(!module.isEntryCreditReceiptDelivery() || !module.isEntryResidenceCard()){ errorFlag++ } if(elementLength == enterFlag && errorFlag === 0){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !== 0 || (elementLength == enterFlag && errorFlag !== 0)){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, homecomingAddress: function(element){ var $entry = element, $entryIndex = $entry.find('.' + className.entryIndex), $inputFacter = $entry.find(className.inputFactor), enterFlag =0, errorFlag =0, sysErrorFlag =0, ctrlId = 'rbtn_is_homecoming', $ctrl_rbtn = $('[id*="' + ctrlId + '"]'), $tgt_tbox01 = $('#tbox_homecoming_zip'), $tgt_tbox02 = $('#tbox_house_address2_kanji'), $tgt_cbox01 = $('#tbox_homecoming_zip_search_check'), elementLength = 1; if($entry.length == 0){return} if($ctrl_rbtn.length === 0){return false} switch($ctrl_rbtn.filter(':checked').val()){ case '1': elementLength = 1; if(module.isEntryChecked($ctrl_rbtn)){ enterFlag++ } if($ctrl_rbtn.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ } break; case '2': elementLength = 4; if($tgt_tbox01.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++ } if($tgt_tbox01.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if($tgt_tbox02.closest(className.inputFactor).hasClass(className.visited)){ enterFlag++ } if($tgt_tbox02.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } if(module.isEntryChecked($tgt_cbox01)){ enterFlag++ } if(module.isEntryChecked($ctrl_rbtn)){ enterFlag++ } if($ctrl_rbtn.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } break; default : if($ctrl_rbtn.closest(className.inputFactor).hasClass(className.sys_error)){ errorFlag++ sysErrorFlag++ } break; } if(!module.isEntryHomecomingAddress()){ errorFlag++ } if(elementLength == enterFlag && errorFlag === 0){ module.setEntryComplete($entryIndex); module.entryAccodion($entry); module.setEntryError($entryIndex, true); }else if(sysErrorFlag !==0 || (elementLength == enterFlag && errorFlag !==0)){ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex); }else{ module.setEntryComplete($entryIndex, true); module.entryAccodion($entry, true); module.setEntryError($entryIndex, true); } }, /*個別チェック*/ isEntryCustomerTel: function(){ var cell_ctrlID = 'tbox_tel_cell_phone', house_ctrlID = 'tbox_tel_house_phone', priority_ctrlID = 'rbtn_tel_priority', $cell = $('[id^="'+cell_ctrlID+'"]'), $house = $('[id^="'+house_ctrlID+'"]'), $priority = $('[id^="'+priority_ctrlID+'"]'), $target, errorFlag = 0; if($cell.length === 0 || $house.length === 0 || $priority.filter(':checked').length === 0){return false} switch($priority.filter(':checked').val()){ case '1': $target = $cell; break; case '0': $target = $house; break; default: return false } $target.each(function(){ var self = $(this); if(self.parents(className.inputFactor).hasClass('input-visited')) { if(module.isEntryEmpty($(this))){ errorFlag++ } } }); if(errorFlag === 0){ return true }else{ return false } }, isEntryCreditCashing: function(){ var ctrlID1 = 'rbtn_credit_amount_cashing', $ctrl_rbtn = $('[id^="'+ctrlID1+'"]'), $tgt_sbox = $('#sbox_credit_amount_cashing'), errorFlag = 0; if($ctrl_rbtn.length === 0 || $tgt_sbox.length === 0){return false} $ctrl_rbtn.each(function(){ if(!module.isEntryChecked($(this))){ errorFlag++ } }); if($ctrl_rbtn.filter(':checked').val() == '1'){ if(module.isEntryEmpty($tgt_sbox)){ errorFlag++ } } if(errorFlag === 0){ return true }else{ return false } }, isEntryCreditPin: function(){ var $tgt_tbox01 = $('#tbox_credit_pin'), $tgt_tbox02 = $('#tbox_credit_pin_confirm'), errorFlag = 0; if($tgt_tbox01.length === 0 || $tgt_tbox02.length === 0){return false} var isValidationCheck = function (value) { //入力が4文字未満 if(value.length < 4){ return false } return true } if(!isValidationCheck($tgt_tbox01.val())){ errorFlag++ } if($tgt_tbox02.val() != $tgt_tbox01.val()){ errorFlag++ } if(errorFlag === 0){ return true }else{ return false } }, isEntryLoginPw: function(){ var $tgt_tbox01 = $('#tbox_login_pw'), $tgt_tbox02 = $('#tbox_login_pw_confirm'), errorFlag = 0; if($tgt_tbox01.length === 0 || $tgt_tbox02.length === 0){return false} var isValidationCheck = function (value) { //入力が空のとき if(value.length === 0){ return false } //半角英数字と記号(.-_)以外だったとき if(value.match( /[^A-Za-z0-9_\-\.]+/g )){ return false } //半角英字と記号(.-_)のみだったとき if(!value.match( /[^A-Za-z_\-\.]+/g )){ return false } //半角数字と記号(.-_)のみだったとき if(!value.match( /[^0-9_\-\.]+/g )){ return false } //半角文字以外だったとき if(value.match( /[^\x01-\x7E]+/g )){ return false } //入力が8文字未満、20文字を超えるとき if(value.length < 8 || value.length > 20){ return false } value = value.replace(/[^\x01-\x7E]+/g, ''); //全角文字を取り除く value = value.replace(/[A-Za-z0-9_\-\.]+/g, ''); //半角英数と記号(_-.)を取り除く if(value.length !== 0){ //文字列が残っていればエラー文言を表示する(全角でも半角英数、記号(_-.)ではない文字が入っていることになる) return false } return true } if(!isValidationCheck($tgt_tbox01.val())){ errorFlag++ } if($tgt_tbox02.val() != $tgt_tbox01.val()){ errorFlag++ } if(errorFlag === 0){ return true }else{ return false } }, // isEntryMailAddress: function(){ // var $tgt_tbox = $('#tbox_mail_address'), // $tgt_cbox = $('#tbox_mail_address_confirm'), // errorFlag = 0; // if($tgt_tbox.length === 0 || $tgt_cbox.length === 0){return false} // if(module.isEntryEmpty($tgt_tbox)){ // errorFlag++ // } // if(!module.isEntryChecked($tgt_cbox)){ // errorFlag++ // } // if(errorFlag === 0){ // return true // }else{ // return false // } // }, isEntryCreditReceipt: function(){ var $tgt_rbtn01 = $('#rbtn_credit_receipt_way1'), $tgt_rbtn02 = $('#rbtn_credit_receipt_way2'), $tgt_sbox = $('#sbox_credit_receipt_shop'), ctrlId01 = 'rbtn_credit_confirm_shop', ctrlId02 = 'rbtn_credit_confirm_delivery', $ctrl_rbtn01 = $('[id*="' + ctrlId01 + '"]'), $ctrl_rbtn02 = $('[id*="' + ctrlId02 + '"]'), receipt_way ="0", errorFlag = 0; if($tgt_rbtn01.length === 0 || $tgt_rbtn02.length === 0){return false} // if($tgt_rbtn01.prop('checked')){ // receipt_way = '1' // } // if($tgt_rbtn02.prop('checked')){ // receipt_way = '2' // } receipt_way = '2' // add 250529 switch(receipt_way){ case '1': if(module.isEntryEmpty($tgt_sbox)){ errorFlag++ } if(!module.isEntryChecked($ctrl_rbtn01)){ errorFlag++ } break; case '2': if(!module.isEntryChecked($ctrl_rbtn02)){ errorFlag++ } break; default : return false } if(errorFlag === 0){ return true }else{ return false } }, isEntryCreditReceiptDelivery: function(){ var ctrlId02 = 'rbtn_credit_confirm_delivery', $ctrl_rbtn02 = $('[id*="' + ctrlId02 + '"]'), errorFlag = 0; if($ctrl_rbtn02.length === 0){return false} if(!module.isEntryChecked($ctrl_rbtn02)){ errorFlag++ } if(errorFlag === 0){ return true }else{ return false } }, isEntryEmboss: function(){ var $chk_cbox1 = $('.js-embossCheckContent'), $chk_rbox2 = $('.js-embossDisabled'); if($chk_cbox1.prop('checked') == true && $chk_rbox2.prop('checked') == true){ return false } return true }, isEntryHomecomingAddress: function(){ var ctrlId = 'rbtn_is_homecoming', $ctrl_rbtn = $('[id*="' + ctrlId + '"]'), $tgt_tbox01 = $('#tbox_homecoming_zip'), $tgt_tbox02 = $('#tbox_house_address2_kanji'), $tgt_cbox01 = $('#tbox_homecoming_zip_search_check'), errorFlag = 0; if($ctrl_rbtn.length === 0){return false} if(!module.isEntryChecked($ctrl_rbtn)){ errorFlag++ } if($ctrl_rbtn.filter(':checked').val() == '2'){ if(module.isEntryEmpty($tgt_tbox01)){ errorFlag++ } if(module.isEntryEmpty($tgt_tbox02)){ errorFlag++ } if(!module.isEntryChecked($tgt_cbox01)){ errorFlag++ } } if(errorFlag !== 0){ return false } return true }, isEntryResidenceCard: function(){ var $chk_sbox1 = $("#sbox_residence_year"), $chk_sbox2 = $("#sbox_residence_month"), $chk_sbox3 = $("#sbox_residence_day"), $chk_sbox4 = $("#sbox_residence_status"), $chk_sbox5 = $("#sbox_permitted_year"), $chk_sbox6 = $("#sbox_permitted_month"), $chk_sbox7 = $("#sbox_permitted_day"), $chk_sbox8 = $("#sbox_nationality"), $chk_tbox1 = $("#tbox_residence_num"), $chk_tbox2 = $("#tbox_name"), $chk_tbox3 = $("#tbox_homecoming_zip02"), $chk_tbox4 = $("#tbox_tel_homecoming02_phone"), errorFlag = 0; var errorCheck = function(){ if($chk_sbox1.val() === ""){ errorFlag++; } if($chk_sbox2.val() === ""){ errorFlag++; } if($chk_sbox3.val() === ""){ errorFlag++; } if($chk_sbox4.val() === ""){ errorFlag++; } if($chk_sbox5.val() === ""){ errorFlag++; } if($chk_sbox6.val() === ""){ errorFlag++; } if($chk_sbox7.val() === ""){ errorFlag++; } if($chk_sbox8.val() === ""){ errorFlag++; } if(module.isEntryEmpty($chk_tbox1)){ errorFlag++; } if(module.isEntryEmpty($chk_tbox2)){ errorFlag++; } if($chk_sbox4.val() == "18"){ if(module.isEntryEmpty($chk_tbox3)){ errorFlag++; } if(module.isEntryEmpty($chk_tbox4)){ errorFlag++; } } } var ctrlID = 'rbtn_credit_receipt_way', $tgt_rbtn = $('[id*="'+ctrlID+'"]'), $tgt_rbtn01 = $('#rbtn_credit_receipt_way1'), $tgt_rbtn02 = $('#rbtn_credit_receipt_way2'), $chk_rbtn1 = $('#rbtn_credit_confirm_shop0601'), $chk_rbtn2 = $('#rbtn_credit_confirm_delivery0601'), check_pattern = 0; if($tgt_rbtn.length !== 0){ check_pattern = 1 }else{ check_pattern = 2 } switch(check_pattern){ case 1: if($tgt_rbtn01.prop('checked') && $chk_rbtn1.prop('checked')){ errorCheck(); } if($tgt_rbtn02.prop('checked') && $chk_rbtn2.prop('checked')){ errorCheck(); } break; case 2: if($chk_rbtn1.prop('checked') || $chk_rbtn2.prop('checked')){ errorCheck(); } break; default: break; } if(errorFlag !== 0){ return false } return true }, }; /*バリデーションチェック*/ function validateCheck() { var $input = $(className.inputFactor + '[data-validate="required"]:visible').find('input[type="text"], input[type="password"], input[type="tel"], input[type="number"], input[type="email"], textarea').not("." + className.noValidate), $select = $(className.inputFactor + '[data-validate="required"]:visible').find('select').not("." + className.noValidate), $radio = $(className.inputFactor + '[data-validate="required"]:visible').find('input[type="radio"]').not("." + className.noValidate), $checkbox = $(className.inputFactor + '[data-validate="required"]:visible').find('input[type="checkbox"]').not("." + className.noValidate), $entryCustomerTel = $('#entry-customer-tel'), $entryCreditCashing = $('#entry-credit-cashing'), $entryCreditPin = $('#entry-credit-pin'), $entryLoginPw = $('#entry-login-pw'), $entryMailAddress = $('#entry-mail-address'), $entryCreditReceipt = $('#entry-credit-receipt'), $entryCreditReceiptDelivery = $('#entry-credit-receipt_delivery'), $entryEmboss = $('#entry-emboss'), $entryResidenceSpec = $('#entry-residence-spec'), $entryHomecomingAddress = $('#entry-homecoming-address'), validateErrorFlag = 0; /*共通*/ $input.each(function(){ var $self = $(this) if(module.isEntryEmpty($self)){ validateErrorFlag++ } }); $select.each(function(){ var $self = $(this) if(module.isEntryEmpty($self)){ validateErrorFlag++ } }); $radio.each(function(){ var $self = $(this) if(!module.isEntryChecked($self)){ validateErrorFlag++ } }); $checkbox.each(function(){ var $self = $(this) if(!module.isEntryChecked($self)){ validateErrorFlag++ } }); /*個別*/ if($entryCustomerTel.length !== 0){ if(!module.isEntryCustomerTel()){ validateErrorFlag++ } } if($entryCreditCashing.length !== 0){ if(!module.isEntryCreditCashing()){ validateErrorFlag++ } } if($entryCreditPin.length !== 0){ if(!module.isEntryCreditPin()){ validateErrorFlag++ } } if($entryLoginPw.length !== 0){ if(!module.isEntryLoginPw()){ validateErrorFlag++ } } // if($entryMailAddress.length !== 0){ // if(!module.isEntryMailAddress()){ // validateErrorFlag++ // } // } if($entryCreditReceipt.length !== 0){ if(!module.isEntryCreditReceipt()){ validateErrorFlag++ } } if($entryCreditReceiptDelivery.length !== 0){ if(!module.isEntryCreditReceiptDelivery()){ validateErrorFlag++ } } if($entryEmboss.length !== 0){ if(!module.isEntryEmboss()){ validateErrorFlag++ } } if($entryHomecomingAddress.length !== 0){ if(!module.isEntryHomecomingAddress()){ validateErrorFlag++ } } if($entryResidenceSpec.length !== 0){ if(!module.isEntryResidenceCard()){ validateErrorFlag++ } } //表示処理 if(validateErrorFlag !== 0){ module.setSubmitButton(false); }else{ module.setSubmitButton(true); } } /*バリデーションチェック*/ function entryCheck(element) { var $entry = element || ""; if($entry.length == 0) {return} // 「主に生計を維持されているかた」セクション(.js-maintainLivelihoodを持つ)は、 // chengeReceivingTreatment.js にて専用の処理があるため、ここでの汎用チェックをスキップする。 if ($entry.find('.js-maintainLivelihood').length > 0) { return; } var $entryId = $entry.attr('id'); switch ($entryId){ case "entry-customer-tel": module.customerTel($entry); break; case "entry-credit-cashing": module.creditCashing($entry); break; case "entry-credit-pin": module.creditPin($entry); break; case "entry-login-pw": module.loginPw($entry); break; case "entry-mail-address": module.mailAddress($entry); break; case "entry-credit-receipt": module.creditReceipt($entry); break; case "entry-credit-receipt_delivery": module.creditReceiptDelivery($entry); break; case "entry-homecoming-address": module.homecomingAddress($entry); break; default : module.entryChange($entry); break; } } /*vars --------------------------------*/ var $text = $(className.inputFactor).find('input[type="text"], input[type="password"], input[type="tel"], input[type="number"], input[type="email"], textarea'), $select = $(className.inputFactor).find('select'), $radio = $(className.inputFactor).find('input[type="radio"]'), $checkbox = $(className.inputFactor).find('input[type="checkbox"]'), $submit = $(className.inputFactor).find('input[type="submit"]'), delayTime = 300; /*init --------------------------------*/ validateCheck(); $text.each(function(){ var $self = $(this); module.textboxChange($self); entryCheck($self.closest('.' + className.entryFactor)); }); $select.each(function(){ var $self = $(this); module.selectChange($self); entryCheck($self.closest('.' + className.entryFactor)); }); $radio.each(function(){ var $self = $(this); module.radioChange($self); entryCheck($self.closest('.' + className.entryFactor)); }); $checkbox.each(function(){ var $self = $(this); module.checkboxChange($self); entryCheck($self.closest('.' + className.entryFactor)); }); /* trigger ------------------------------- */ //バリデーションチェック $("input, textarea, select").on("change", function(){ setTimeout(function(){ validateCheck(); }, delayTime); }); $("input, textarea").on("blur, keyup", function(){ setTimeout(function(){ validateCheck(); }, delayTime); }); $("select").on("blur", function(){ setTimeout(function(){ validateCheck(); }, delayTime); }); // バリデーションチェック:ソフトウェアキーボードの実行押下時制御 $("input, textarea").on("keypress",function(e){ var RETURN_KEY_CODE = 13; if(e.keyCode === RETURN_KEY_CODE){ setTimeout(function(){ validateCheck(); }, delayTime); if($submit.prop('disabled')){ document.activeElement.blur(); return false; } } }); /*汎用表示変更*/ var eventName; if(u.isiPhone()){ eventName = "click"; } else { eventName = "focus"; } $text.on(eventName, function(e){ module.textboxChange($(this), e.type); }); $text.on('blur', function(e){ var $self = $(this); module.textboxChange($self, e.type); module.textboxError($self); setTimeout(function(){ entryCheck($self.closest('.' + className.entryFactor)); }, delayTime); }); $select.on('focus change blur', function(e){ var $self = $(this); module.selectChange($self, e.type); if(e.type == "blur"){ module.selectError($self); } setTimeout(function(){ entryCheck($self.closest('.' + className.entryFactor)); }, delayTime); }); $radio.on('click change', function(e){ var $self = $(this); module.radioChange($self, e.type); setTimeout(function(){ entryCheck($self.closest('.' + className.entryFactor)); }, delayTime); }); $checkbox.on('click change', function(e){ var $self = $(this); module.checkboxChange($self, e.type); setTimeout(function(){ entryCheck($self.closest('.' + className.entryFactor)); }, delayTime); }); /*個別表示変更*/ //電話番号 //ログインパスワード //メールアドレス //受取方法 //受取方法 }; /* * @plugin tooltip * - ツールチップ */ $.tooltip = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $container = $(".js-tooltipWrap"), triggerElm = ".tipover", tglElm = ".tip", activeName = "active", fadeSpeed = 300; if($container.length === 0){ return false; } /* setting ------------------------------- */ $container.each(function(){ var tip = $(this).find(tglElm), tipH = tip.height(); tip.css("marginTop", "-" + tipH/2 + "px"); }); /* trigger ------------------------------- */ $(triggerElm).on({ "mouseenter": function(){ var self = $(this); if(!self.hasClass(activeName)){ self.addClass(activeName); self.next().stop().fadeIn(fadeSpeed); } }, "mouseleave": function(){ var self = $(this); self.removeClass(activeName); self.next().stop().fadeOut(fadeSpeed); } }); }; /* * @plugin letterCounter * - 文字数カウント */ $.letterCounter = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $elm = $('.js-inputCounter'), countedName = "counted", counterName = "number", safetyName = "safety"; if($elm.length === 0){ return false; } /* setting ------------------------------- */ $elm.each(function(){ var self = $(this), counter = self.find("." + counterName), $tgtInput = $("#" + counter.data("count")), safetyNum = counter.data("safety"), letterNum = $tgtInput.val().length; $tgtInput.addClass(countedName); counter.text(letterNum); if(letterNum >= 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 entryAge * - 入力画面2:ご本人収入の有無制御 */ $.entryAge = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-age'), $wrap = $('.js-age_calculationWrap'), $elm = $('.js-age_calculation'), ctrlID1 = "sbox_birth", $ctrl_sbox1 = $('[id^=' + ctrlID1 + ']'), $tgt_sbox01 = $("#sbox_birth_year"), $tgt_sbox02 = $("#sbox_birth_month"), $tgt_sbox03 = $("#sbox_birth_day"); if($entry.length == 0 ||$elm.length === 0){ return false; } /* function ------------------------------- */ var ageCalculation = ( birthDate , nowDate ) => { var age = nowDate.getFullYear() - birthDate.getFullYear(); var thisYearsBirthday = new Date( nowDate.getFullYear() , birthDate.getMonth() , birthDate.getDate() ); return age + ( thisYearsBirthday.getTime() > nowDate.getTime() ? -1 : 0 ); } /* init ------------------------------- */ $wrap.hide(); var birthday = $tgt_sbox01.val() + '/' + $tgt_sbox02.val() + '/' + $tgt_sbox03.val(), age = ''; if(birthday.length == 10){ age = ageCalculation( new Date(birthday) , new Date() ); $elm.text(age); $wrap.show(); } /* trigger ------------------------------- */ // radio制御 $ctrl_sbox1.on("change", function(){ var birthday = $tgt_sbox01.val() + '/' + $tgt_sbox02.val() + '/' + $tgt_sbox03.val(), age = ''; if(birthday.length == 10){ age = ageCalculation( new Date(birthday) , new Date() ); $elm.text(age); $wrap.show(); } }); }; /* * @plugin entryResidence * - 入力画面2: */ $.entryResidence = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-residence-spec'), $rbtn_entry01 = $('#entry-credit-receipt'), $rbtn_entry02 = $('#entry-credit-receipt_delivery'), rbtn_ctrlID1 = "rbtn_credit_receipt_way", rbtn_ctrlID2 = "rbtn_credit_confirm_shop", rbtn_ctrlID3 = "rbtn_credit_confirm_delivery", $tgt_rbtn01 = $("#rbtn_credit_receipt_way1"), $tgt_rbtn02 = $("#rbtn_credit_receipt_way2"), $tgt_rbtn03 = $("#rbtn_credit_confirm_shop0601"), $tgt_rbtn04 = $("#rbtn_credit_confirm_delivery0601"), $tgt_sbox01 = $("#sbox_residence_status"), $homecomingAddress02 = $("#entry-homecoming-address02"); if($entry.length == 0){ return false; } /* init ------------------------------- */ $entry.hide(); // if($rbtn_entry01.length !== 0 ){ if(($tgt_rbtn04.prop('checked'))){ // if(($tgt_rbtn01.prop('checked') && $tgt_rbtn03.prop('checked')) || ($tgt_rbtn02.prop('checked') && $tgt_rbtn04.prop('checked'))){ $entry.show(); } // } if($rbtn_entry02.length !== 0 ){ if($tgt_rbtn04.prop('checked')){ $entry.show(); } } $homecomingAddress02.hide(); if($tgt_sbox01.val() == "18"){ $homecomingAddress02.show(); } /* trigger ------------------------------- */ // radio制御 $('[id*="' + rbtn_ctrlID1 + '"]').on("change", function(){ if(($tgt_rbtn01.prop('checked') && $tgt_rbtn04.prop('checked'))){ // if(($tgt_rbtn01.prop('checked') && $tgt_rbtn03.prop('checked')) || ($tgt_rbtn02.prop('checked') && $tgt_rbtn04.prop('checked'))){ $entry.slideDown(300); }else{ $entry.slideUp(300); } }); $('[id*="' + rbtn_ctrlID2 + '"]').on("change", function(){ if($tgt_rbtn01.prop('checked') && $tgt_rbtn03.prop('checked')){ $entry.slideDown(300); }else{ $entry.slideUp(300); } }); $('[id*="' + rbtn_ctrlID3 + '"]').on("change", function(){ if(($tgt_rbtn04.prop('checked'))){ // if(($tgt_rbtn02.prop('checked') && $tgt_rbtn04.prop('checked')) || ($rbtn_entry02.length !== 0 && $tgt_rbtn04.prop('checked'))){ $entry.slideDown(300); }else{ $entry.slideUp(300); } }); $tgt_sbox01.on('change', function(){ if($tgt_sbox01.val() == "18"){ $homecomingAddress02.show(); }else{ $homecomingAddress02.hide(); } }); }; /* * @plugin entryDriversLicense * - 入力画面2: */ $.entryDriversLicense = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-drivers-license'), $rbtn_entry01 = $('#entry-credit-receipt'), $rbtn_entry02 = $('#entry-credit-receipt_delivery'), rbtn_ctrlID1 = "rbtn_credit_receipt_way", rbtn_ctrlID2 = "rbtn_credit_confirm_shop", rbtn_ctrlID3 = "rbtn_credit_confirm_delivery", $tgt_rbtn01 = $("#rbtn_credit_receipt_way1"), $tgt_rbtn02 = $("#rbtn_credit_receipt_way2"), $tgt_rbtn03 = $("#rbtn_credit_confirm_shop01"), $tgt_rbtn04 = $("#rbtn_credit_confirm_delivery01"); if($entry.length == 0){ return false; } /* init ------------------------------- */ $entry.hide(); // if($rbtn_entry01.length !== 0){ // if(($tgt_rbtn01.prop('checked') && $tgt_rbtn03.prop('checked')) || ($tgt_rbtn02.prop('checked') && $tgt_rbtn04.prop('checked'))){ // $entry.show(); // } // } // if($rbtn_entry02.length !== 0){ if($tgt_rbtn04.prop('checked')){ $entry.show(); } // } /* trigger ------------------------------- */ // radio制御 $('[id*="' + rbtn_ctrlID1 + '"]').on("change", function(){ if(($tgt_rbtn04.prop('checked'))){ // if(($tgt_rbtn01.prop('checked') && $tgt_rbtn03.prop('checked')) || ($tgt_rbtn02.prop('checked') && $tgt_rbtn04.prop('checked'))){ $entry.slideDown(300); }else{ $entry.slideUp(300); } }); $('[id*="' + rbtn_ctrlID2 + '"]').on("change", function(){ if($tgt_rbtn03.prop('checked')){ $entry.slideDown(300); }else{ $entry.slideUp(300); } }); $('[id*="' + rbtn_ctrlID3 + '"]').on("change", function(){ if($tgt_rbtn04.prop('checked')){ // if($tgt_rbtn02.prop('checked') && $tgt_rbtn04.prop('checked') || ($rbtn_entry02.length !== 0 && $tgt_rbtn04.prop('checked'))){ $entry.slideDown(300); }else{ $entry.slideUp(300); } }); }; /* * @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 entryCustomerAddress * - 入力画面2:ご本人収入の有無制御 */ $.entryCustomerAddress = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry1 = $('#entry-customer-address'), $entry2 = $('#entry-customer-address-kana'), $tgt_tbox01 = $("#tbox_house_zip"), $tgt_tbox03 = $("#tbox_house_address2_kanji"), $reflect01 = $("#addressReflect01"), //zipaddress.jsにて反映 $reflect02 = $("#addressReflect02"), //zipaddress.jsにて反映 $reflect03 = $("#addressReflect03"), $tgt_cbox01 = $("#cbox_address_confirm"), $tgt_cbox02 = $("#tbox_zip_search_check"); if($entry1.length === 0 || $entry2.length === 0){return false} /* function ------------------------------- */ /* init ------------------------------- */ if($tgt_cbox02.prop("checked")){ if($tgt_tbox01.val().length !== 0 && $tgt_tbox03.val().length !== 0){ $reflect01.text($tgt_tbox01.val().replace(/(\d{3})(\d{4})/,"$1-$2")); $reflect02.text($("#address_kanji1 .readonly_box").text()); $reflect03.text($tgt_tbox03.val()); } $entry1.show(); $entry2.show(); } /* trigger ------------------------------- */ $tgt_tbox01.on('change', function(){ $reflect03.text(''); $tgt_cbox01.closest('.input-area--check').removeClass('input-checked'); $tgt_cbox01.prop('checked', false).change(); }); $tgt_tbox03.on('blur keyup', function(){ $reflect03.text($tgt_tbox03.val()); }); $tgt_tbox03.on('change', function(){ $tgt_cbox01.closest('.input-area--check').removeClass('input-checked'); $tgt_cbox01.prop('checked', false).change(); }); }; /* * @plugin entryCustomerAddress * - 入力画面2:ご本人収入の有無制御 */ $.entryMailAddress = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-mail-address'), $confirm_text = $('.js-mail-confirm--address---value', $entry), $confirm_textValue = $('.js-mail-confirm--address---value'), $tgt_tbox01 = $("#tbox_mail_address"), $tgt_cbox01 = $("#tbox_mail_address_confirm"); if($entry.length === 0){return false} /* function ------------------------------- */ /* init ------------------------------- */ // if($tgt_tbox01.val().length !== 0){ // $confirm_text.text($tgt_tbox01.val()); // $confirm_textValue.closest('div').show(); // } /* trigger ------------------------------- */ $tgt_tbox01.on('focus', function(){ $confirm_textValue.closest('div').show(); }); $tgt_tbox01.on('change keyup', function(){ $confirm_text.text($(this).val()); $tgt_cbox01.prop('checked', false); $tgt_cbox01.closest('[class*="input-area--"]').removeClass("input-checked"); }); $tgt_tbox01.on('blur', function(){ $confirm_text.text($(this).val()); }); }; /* * @plugin entryCreditPin * - 入力画面2: */ $.entryCreditPin = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-credit-pin'), $tgt_tbox01 = $("#tbox_credit_pin"), $tgt_tbox02 = $("#tbox_credit_pin_confirm"), $wrap01 = $tgt_tbox01.closest('[class*="input-area--"]'), $wrap02 = $tgt_tbox02.closest('[class*="input-area--"]'), errorName = 'input-error', sysErrorName = 'item-error', $errorBox01 = $wrap01.find('.js-credit_pin-errorBox'), $errorBox02 = $wrap02.find('.js-credit_pin-errorBox'), $counter = $('.js-digitNumberCounter', $errorBox01), $emptiness = $('.js-digitNumberEmptiness', $errorBox01), $againEmptiness = $('.js-againEmptiness', $errorBox02), $againDifferent = $('.js-againDifferent', $errorBox02), errorInEntryName = "error", successInEntryName = "success", errorFlag = 0; if($entry.length === 0){return false} /* setting --------------------------------*/ $emptiness.hide(); $againEmptiness.hide(); $againDifferent.hide(); /* trigger ------------------------------- */ $tgt_tbox01.on('keyup', function(){ var value = $(this).val(); errorFlag = 0; //8文字未満の時 if(value.length < 4){ $counter.show(); $counter.removeClass(successInEntryName); $counter.addClass(errorInEntryName); } //8文字以上、20文字以下の時 else if(value.length == 4){ $counter.show(); $counter.removeClass(errorInEntryName); $counter.addClass(successInEntryName); } else{ $counter.show(); $counter.removeClass(errorInEntryName); $counter.removeClass(successInEntryName); } }); $tgt_tbox01.on('blur', function(){ var value = $(this).val(); errorFlag = 0; //入力が空のとき if(value.length === 0){ $counter.hide(); $counter.hide(); $emptiness.show(); errorFlag++; } //4文字未満の時 else if(value.length < 4){ $counter.show(); $emptiness.hide(); errorFlag++; } if(errorFlag !== 0){ $wrap01.removeClass(sysErrorName).addClass(errorName); }else{ $wrap01.removeClass(sysErrorName).removeClass(errorName); } if($tgt_tbox02.val().length !== 0){ $tgt_tbox02.change(); } }); $tgt_tbox01.on('focus', function(){ $emptiness.hide(); }); $tgt_tbox02.on('blur change keyup', function(){ var value01 = $(this).val(), value02 = $tgt_tbox01.val(), errorFlag = 0; //入力が空のとき if(value01.length === 0){ $againEmptiness.show(); errorFlag++; }else{ $againEmptiness.hide(); } //入力が異なるとき if(value01 != value02){ $againDifferent.show(); errorFlag++; }else{ $againDifferent.hide(); } if(errorFlag !== 0){ $wrap02.removeClass(sysErrorName).addClass(errorName); }else{ $wrap02.removeClass(sysErrorName).removeClass(errorName); } }); }; /* * @plugin entryIdPw * - 入力画面2: */ $.entryIdPw = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-login-pw'), $tgt_tbox01 = $("#tbox_login_pw"), $tgt_tbox02 = $("#tbox_login_pw_confirm"), $wrap01 = $tgt_tbox01.closest('[class*="input-area--"]'), $wrap02 = $tgt_tbox02.closest('[class*="input-area--"]'), errorName = 'input-error', sysErrorName = 'item-error', $errorBox01 = $wrap01.find('.js-login_pw-errorBox'), $errorBox02 = $wrap02.find('.js-login_pw-errorBox'), $counter = $('.js-digitNumberCounter', $errorBox01), $emptiness = $('.js-digitNumberEmptiness', $errorBox01), $over = $('.js-digitNumberOver' , $errorBox01), $combination01 = $('.js-combinationValideteKey' , $errorBox01), $combination02 = $('.js-combinationValideteBlur01' , $errorBox01), $combination03 = $('.js-combinationValideteBlur02' , $errorBox01), $againEmptiness = $('.js-againEmptiness', $errorBox02), $againDifferent = $('.js-againDifferent', $errorBox02), errorInEntryName = "error", successInEntryName = "success", errorFlag = 0; if($entry.length === 0){return false} /* setting --------------------------------*/ $combination02.hide(); $combination03.hide(); $emptiness.hide(); $over.hide(); $againEmptiness.hide(); $againDifferent.hide(); /* trigger ------------------------------- */ $tgt_tbox01.on('keyup', function(){ var value = $(this).val(); errorFlag = 0; //8文字未満の時 if(value.length < 8){ $counter.show(); $counter.removeClass(successInEntryName); $counter.addClass(errorInEntryName); $over.hide(); } //8文字以上、20文字以下の時 else if(value.length <= 20){ $counter.show(); $counter.removeClass(errorInEntryName); $counter.addClass(successInEntryName); $over.hide(); } //20字を超えるとき else if(value.length > 20){ $counter.hide(); $over.show(); } else{ $counter.show(); $counter.removeClass(errorInEntryName); $counter.removeClass(successInEntryName); $over.hide(); } //英字が含まれるとき && 数字が含まれるとき if(value.match( /[A-Za-zA-Za-z]+/g ) && value.match( /[0-90-9]+/g )){ $combination01.removeClass(errorInEntryName); $combination01.addClass(successInEntryName); } else{ $combination01.addClass(errorInEntryName); $combination01.removeClass(successInEntryName); } }); $tgt_tbox01.on('blur', function(){ var value = $(this).val(); errorFlag = 0; //入力が空のとき if(value.length === 0){ $counter.hide(); $counter.hide(); $emptiness.show(); errorFlag++; } //8文字未満の時 else if(value.length < 8){ $counter.show(); $emptiness.hide(); $over.hide(); errorFlag++; } //20文字以上の時 else if(value.length > 20){ errorFlag++; } //半角英数字と記号(.-_)以外だったとき if(value.match( /[^A-Za-z0-9_\-\.]+/g )){ errorFlag++; } //半角英字と記号(.-_)のみだったとき if(!value.match( /[^A-Za-z_\-\.]+/g )){ errorFlag++; } //半角数字と記号(.-_)のみだったとき if(!value.match( /[^0-9_\-\.]+/g )){ errorFlag++; } //半角文字以外だったとき if(value.match( /[^\x01-\x7E]+/g )){ $combination02.show(); errorFlag++; }else{ $combination02.hide(); } value = value.replace(/[^\x01-\x7E]+/g, ''); //全角文字を取り除く value = value.replace(/[A-Za-z0-9_\-\.]+/g, ''); //半角英数と記号(_-.)を取り除く if(value.length !== 0){ //文字列が残っていればエラー文言を表示する(全角でも半角英数、記号(_-.)ではない文字が入っていることになる) $combination03.show(); errorFlag++; }else{ $combination03.hide(); } if(errorFlag !== 0){ $wrap01.removeClass(sysErrorName).addClass(errorName); }else{ $wrap01.removeClass(sysErrorName).removeClass(errorName); } if($tgt_tbox02.val().length !== 0){ $tgt_tbox02.change(); } }); $tgt_tbox01.on('focus', function(){ $emptiness.hide(); $combination02.hide(); $combination03.hide(); }); $tgt_tbox02.on('blur change keyup', function(){ var value01 = $(this).val(), value02 = $tgt_tbox01.val(), errorFlag = 0; //入力が空のとき if(value01.length === 0){ $againEmptiness.show(); errorFlag++; }else{ $againEmptiness.hide(); } //入力が異なるとき if(value01 != value02){ $againDifferent.show(); errorFlag++; }else{ $againDifferent.hide(); } if(errorFlag !== 0){ $wrap02.removeClass(sysErrorName).addClass(errorName); }else{ $wrap02.removeClass(sysErrorName).removeClass(errorName); } }); }; /* * @plugin entryCreditReceipt * - 入力画面2: */ $.entryCreditReceipt = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-credit-receipt'), $entry2 = $('#entry-credit-receipt_delivery'), ctrlID01 = 'rbtn_credit_receipt_way', ctrlID02 = 'rbtn_credit_confirm_shop', ctrlID03 = 'rbtn_credit_confirm_delivery', $tgt_rbtn01 = $('[id^="'+ ctrlID01 +'"]'), $tgt_rbtn02 = $('[id^="'+ ctrlID02 +'"]'), $tgt_rbtn03 = $('[id^="'+ ctrlID03 +'"]'), $acc_target = $(".js-credit_accBox"), switchClass = ".accBtn", boxClass = ".detailsBox", activeClass = "open"; if($entry.length === 0 && $entry2.length === 0){return false} /* function ------------------------------- */ /* init ------------------------------- */ if($entry.length !== 0){ if($tgt_rbtn01.filter(":checked").val() == '1'){ $('.js-deliveryContent').hide(); }else if($tgt_rbtn01.filter(":checked").val() == '2'){ $('.js-shopContent').hide(); }else{ $('.js-deliveryContent').hide(); $('.js-shopContent').hide(); } } //accordion $tgt_rbtn02.filter(":checked").closest(".js-credit_accBox").each(function(){ $(switchClass, this).addClass(activeClass); $(boxClass, this).addClass(activeClass); }); $tgt_rbtn03.filter(":checked").closest(".js-credit_accBox").each(function(){ $(switchClass, this).addClass(activeClass); $(boxClass, this).addClass(activeClass); }); $acc_target.each(function(){ var box = $(boxClass, this), accordSwitch = $(switchClass, this); box.not('.'+activeClass).hide(); /* 開閉 */ var accordion = function(){ if (box.is(":hidden")){ box.stop(true).slideToggle(300); accordSwitch.toggleClass(activeClass); } else { box.stop(true).slideToggle(300); accordSwitch.toggleClass(activeClass); } EPOS_FORM.module.equalHeight(); }; $(accordSwitch).on({ click: function(){ accordion(); } }); }); /* trigger ------------------------------- */ $tgt_rbtn01.on('change', function(){ if($('[id^="'+ ctrlID01 +'"]:checked').val() == '1'){ $('.js-deliveryContent').hide(); $('.js-shopContent').show(); }else if($('[id^="'+ ctrlID01 +'"]:checked').val() == '2'){ $('.js-deliveryContent').show(); $('.js-shopContent').hide(); }else{ $('.js-deliveryContent').hide(); $('.js-shopContent').hide(); } }); }; /* * @plugin entryHomecomingAddress * - 入力画面2: */ $.entryHomecomingAddress = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), $entry = $('#entry-homecoming-address'), ctrlID01 = 'rbtn_is_homecoming', $tgt_rbtn01 = $('[id^="'+ ctrlID01 +'"]'), $tgt_rbtn02 = $('#rbtn_is_homecoming1'), $tgt_rbtn03 = $('#rbtn_is_homecoming2'), $addressWrap = $('.js-homecoming--wrap'); if($entry.length === 0){return false} /* function ------------------------------- */ /* init ------------------------------- */ if($tgt_rbtn02.prop('checked')){ $addressWrap.not('.hide').show(); }else{ $addressWrap.hide(); } /* trigger ------------------------------- */ $tgt_rbtn01.on('change', function(){ if($tgt_rbtn02.prop('checked')){ $addressWrap.not('.hide').show(); }else{ $addressWrap.hide(); } }); }; /* * @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; } $elm.on("click",function(){ $trg.click(); }); $cautionClose.on("click",function(){ return false; }); $changeBtn.on("click",function(){ $changeRbtn.click(); $.entryCreditRecieptControl(); $.colorbox.close(); 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; } $elm.on("click",function(){ $trg.click(); }); $cautionClose.on("click",function(){ return false; }); $changeBtn.on("click",function(){ $changeRbtn.click(); $.entryCreditRecieptControl(); $.colorbox.close(); 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; } $elm.on("click",function(){ $trg.click(); }); $cautionClose.on("click",function(){ return false; }); $resetBtn.on("click",function(){ $("[id*="+ radioName +"]:checked").prop('checked', false); $("[id*="+ radioName +"]").change(); $radio.parents(".input-area--radio").removeClass("input-checked"); $.colorbox.close(); }); }; /* * @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 = "input-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: "90%", pc_height: false, tl_height: false, sp_height: false }); } $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){ $elm.prop('checked', true); $elm.change(); $elm.closest('[class*="input-area--"]').addClass(checkedName); $errorBox.show(); $modal.click(); } else if($self.attr('disabled') == "disabled" && $self.prop('checked') == true){ $elm.closest('[class*="input-area--"]').removeClass(checkedName); $elm.prop('checked', false); $elm.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('entry-index') && $ancContent01.hasClass('close')){ $ancContent01.click(); } }, 1000) }); }); $modaldisabledBtn.each(function(){ var $self = $(this); $self.on('click', function(){ $.colorbox.close(); $elm.parent().removeClass(checkedName); $elm.prop('checked', false); $elm.closest('[class*="input-area--"]').removeClass(checkedName); $elm.change(); $errorBox.hide(); setTimeout(function(){ $("html, body").animate({ scrollTop: $ancContent02.offset().top }, 300, "swing"); if($ancContent02.hasClass('entry-index') && $ancContent02.hasClass('close')){ $ancContent02.click(); } }, 1000) }); }); }; /* * @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); $.equalHeightVertical(); EPOS_FORM.module.equalHeight(); }); }; /* * @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 = $('.entry-hide', $container), selectedName = "selected", errorName = "input-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); } else { // 出し分け制御 $hiddenElm.slideUp(slideSpeed); // 初期化 $("option", $ctrl_sbox1).prop("selected", false); $ctrl_sbox1.next(".input-choice").text($("option:first", $ctrl_sbox1).text()); $ctrl_sbox1.closest('.input-area--select').removeClass(selectedName + ' ' + errorName); } }; /* init ------------------------------- */ entryProcessing1(initialVal1); /* trigger ------------------------------- */ // radio制御 $ctrl_rbtn1.on("change", function(){ var self = $(this), val = self.val(); entryProcessing1(val); }); }; /* * @plugin entryHomecomingControl * - 入力画面2:キャッシング項目制御 */ $.entryHomecomingControl = function(){ /* vars ------------------------------- */ var u = new EPOS_FORM.Util(), // 郵便番号検索が実行されたことを示すチェックボックス $tgt_cbox1 = $('#tbox_homecoming_zip_search_check'), // 表示/非表示を制御する住所入力欄のセクション $hiddenElm = $('#entry-customer-address, #entry-customer-address-kana'), slideSpeed = 150; // 制御対象のチェックボックスが存在しない場合は処理を終了 if($tgt_cbox1.length === 0){ return false; } /* function ------------------------------- */ // 住所入力欄の表示を切り替える関数 var entryProcessing1 = function(){ // 郵便番号検索済みチェックボックスがチェックされている場合 if($tgt_cbox1.prop('checked')){ // 住所入力欄を表示 $hiddenElm.show(slideSpeed); } else { // 住所入力欄を非表示 $hiddenElm.hide(slideSpeed); } }; /* init ------------------------------- */ // ページ読み込み時に初期状態を設定 entryProcessing1(); /* trigger ------------------------------- */ // zipaddressMove.jsによってチェック状態が変更された場合にも対応 $tgt_cbox1.on("change", function(){ entryProcessing1(); }); }; $.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); } $.entryHomecomingAddressControl = function(){ /* vars ------------------------------- */ var $section = $('#entry-homecoming-address'); if ($section.length === 0) { return; } var $mainEntryIndex = $('#anc21', $section); var $entryPanel = $mainEntryIndex.siblings('.entry-panel'); // パネル部分を取得 var $radioHomecomingAvailable = $('#rbtn_is_homecoming1'); var $radioHomecomingNotAvailable = $('#rbtn_is_homecoming2'); var $detailsWrapper = $('.js-homecoming--wrap').first(); var $addressSection = $('#entry-customer-address'); var $addressKanaSection = $('#entry-customer-address-kana'); var $zipInput = $('#tbox_homecoming_zip'); var $zipSearchedCheck = $('#tbox_homecoming_zip_search_check'); var $addressInput = $('#tbox_house_address2_kanji'); var $addressKanaInput = $('#tbox_house_address2_kana'); var $addressConfirmCheck = $('#cbox_address_confirm'); var slideSpeed = 300; var className = { complete: 'input-complete', error: 'input-error', close: 'close' // アコーディオンの開閉状態を示すクラス }; /* functions ------------------------------- */ /** * アコーディオン機能を設定する。 * 完了状態(input-completeクラスの有無)に応じてクリックイベントをバインドする。 */ var updateAccordionBehavior = function() { // 既存のイベントを一旦解除して、多重設定を防ぐ $mainEntryIndex.off('click.accordion'); // クリックイベントを再設定 $mainEntryIndex.on('click.accordion', function() { var $self = $(this); // 完了状態でない場合は、常に開いたままにする if (!$self.hasClass(className.complete)) { $entryPanel.slideDown(slideSpeed); $self.removeClass(className.close); return; } // 完了状態の場合は、開閉を切り替える if ($self.hasClass(className.close)) { $entryPanel.slideDown(slideSpeed); $self.removeClass(className.close); } else { $entryPanel.slideUp(slideSpeed); $self.addClass(className.close); } }); }; /** * 「帰省先について」セクション全体の入力が完了したかチェックし、 * 状態に応じて 'input-complete' クラスを付け外しします。 */ var checkMainCompletion = function() { var isComplete = false; if ($radioHomecomingNotAvailable.prop('checked')) { isComplete = true; } else if ($radioHomecomingAvailable.prop('checked')) { // 住所検索完了のチェックは外しています if ( $zipInput.val().trim() !== '' && $addressInput.val().trim() !== '' && $addressKanaInput.val().trim() !== '' && $addressConfirmCheck.prop('checked') ) { isComplete = true; } } if (isComplete) { $mainEntryIndex.addClass(className.complete).removeClass(className.error); } else { $mainEntryIndex.removeClass(className.complete); // 未完了になったらアコーディオンを強制的に開く $mainEntryIndex.removeClass(className.close); $entryPanel.slideDown(slideSpeed); } // 状態が変わるたびにアコーディオンの動作を更新する updateAccordionBehavior(); }; /** * ラジオボタンの選択状態や住所検索の完了状態に応じて、 * 関連する入力エリアの表示/非表示をアニメーションで切り替えます。 */ var toggleVisibility = function() { if ($radioHomecomingAvailable.prop('checked')) { $detailsWrapper.slideDown(slideSpeed); // 郵便番号が入力されていれば住所入力欄を表示 var isZipEntered = $zipInput.val().trim() !== ''; if (isZipEntered) { $addressSection.slideDown(slideSpeed); $addressKanaSection.slideDown(slideSpeed); } else { $addressSection.slideUp(slideSpeed); $addressKanaSection.slideUp(slideSpeed); } } else { $detailsWrapper.slideUp(slideSpeed); $addressSection.slideUp(slideSpeed); $addressKanaSection.slideUp(slideSpeed); } }; /* init ------------------------------- */ var initialize = function() { toggleVisibility(); checkMainCompletion(); }; initialize(); /* triggers ------------------------------- */ $('input[name="parentsDivCohabit"]').on('change', function() { toggleVisibility(); checkMainCompletion(); }); $zipSearchedCheck.on('change', function() { toggleVisibility(); checkMainCompletion(); }); var $inputsForCompletionCheck = $zipInput.add($addressInput).add($addressKanaInput).add($addressConfirmCheck); $inputsForCompletionCheck.on('keyup blur change', function() { checkMainCompletion(); }); }; })(jQuery);