var fo = {'ei':'getElementById','en':'getElementsByName'}; fo.d = document; fo.required = {}; fo.injection = {}; fo.format = {}; fo.phpvalid = {}; fo.hma_e = {}; fo.cash_hma = {}; fo._allret_req = {}, fo._allret_fom = {}, fo._allret_hmae = {}; fo.inject = function(n,o,t) { // ここだけjQueryで・・・ var f,code, p = fo.d[fo.en](n)[0].type; if (p=='radio') { code = "f = ($('[name="+'"'+n+'"'+"]:checked').val() " + o + " '" + t + "');"; } else if (p=='checkbox') { code = "var node=document.querySelectorAll('[name="+'"'+n+'"'+"]'), c=0;for(var i=0; i0);"; } else { code = "f = ($('[name="+'"'+n+'"'+"]').val() " + o + " '" + t + "');"; } eval(code); return f; }; fo.inject_parent_check = function(pname){ Object.keys(fo.injection).forEach(function(cname){ if(fo.injection[cname][0] == pname){ fo._allret_req[cname] = !fo.inject(fo.injection[cname][0], fo.injection[cname][1], fo.injection[cname][2]); } }); } fo.check = function(f) { if(!f){ var _e = document.querySelectorAll('.fo_err'); }else{ var _e = document.querySelectorAll('.fo_err[name="'+f+'"], [data-spot="'+f+'"], [data-name="'+f+'"]'); } for (var n=0; n<_e.length; n++) { _e[n].classList.remove('fo_err'); } var result = {}, returnFlg = true, e = fo.d[fo.ei]('error_disp'); if (e) e.style.display = 'none'; for (var name in fo.required) { if(!f || f == name){ fo.d[fo.ei]('err_'+name).innerHTML = ''; } var t = fo.d[fo.en](name); if (!t) { continue; } // 条件付き必須 if (fo.injection[name] && fo.injection[name].length > 0) { if (!fo.inject(fo.injection[name][0], fo.injection[name][1], fo.injection[name][2])) { // 必須じゃないので戻ります continue; } } for (var n=0; n 0){ var c = t[0]; clear = true; var _ret = checkPhpValid(c, fo.phpvalid[name].mode); if (_ret !== true) { err = true; fo._allret_fom[name] = false; returnFlg &= !err; if(!f == false && f != name){ continue; } if (!result[name]) { result[name] = _ret; } for (var n=0; n 0){ switch(fo.cash_hma[c.value]){ case true: err = true; break; case false: break; default: clear = true; err = !checkHmaEmail(c); fo.cash_hma[c.value] = err; break; } if(err) { fo._allret_hmae[fo.hma_e.name] = false; returnFlg &= !err; if(!f || f == fo.hma_e.name){ if (!result[fo.hma_e.name]) { result[fo.hma_e.name] = _hma_response_msg; c.classList.add("fo_err"); if (e) e.style.display = 'inline'; } } }else{ fo._allret_hmae[fo.hma_e.name] = true; } } } } for(var name in result) { fo.d[fo.ei]('err_' + name).innerHTML = result[name] + "
"; if (fo.hilights == 'self') { var t = fo.d[fo.en](name); } } if(!f){ _e = document.getElementsByClassName('fo_err'); if(_e.length > 0){ _e[0].scrollIntoView(true); } }else if(!result[f]){ fo.inject_parent_check(f); } return returnFlg > 0 ? true : false; }; fo.check_req = function(c) { var filled = false; if (c.tagName == 'INPUT') { if (c.type == 'checkbox') { if (c.checked) { filled = true; } } else if (c.type == 'radio') { if (c.checked && (c.value && c.value.length>0)) { filled = true; } } else { if (c.value.length > 0) { filled = true; } } } else if (c.tagName == "SELECT") { if (c.options[c.selectedIndex].value.length > 0) { filled = true; } } else if (c.tagName == "TEXTAREA") { if (c.value.length > 0) { filled = true; } } return filled; }