let preset,locales; const name_map = { "firstName":"first_name", "lastName":"last_name", "address":"address", "zip":"zip", "phone":"phone", "city":"city" }; function setValidateRule(country_code) { const func = function () { const i18n = { "firstName":"Enth\u00e4lt ung\u00fcltige Zeichen", "lastName":"Enth\u00e4lt ung\u00fcltige Zeichen", "zip":"Enth\u00e4lt ung\u00fcltige Zeichen", "phone":"Bitte geben Sie die korrekte Telefonnummer ein" }; if(country_code){ console.log('country_code',country_code); const targetPreset = locales.find((ele)=>ele.code===country_code).preset; const targetRule = preset[targetPreset].fields; console.log('targetRule',targetRule); targetRule.forEach((ele)=>{ const domList = document.querySelectorAll(`.form__input[name="${name_map[ele.id]}"]`); if(domList && domList.length){ domList.forEach((dom)=>{ if(dom){ const valueMisDom = document.querySelector(`.value_missing[validation-for="${dom.id}"]`) const patternDom = document.querySelector(`.pattern_mismatch[validation-for="${dom.id}"]`) const patternDom_1 = document.querySelector(`.pattern_mismatch_1[validation-for="${dom.id}"]`) dom.setAttribute("maxlength", ele.length); if(dom.id==='firstName' || dom.id==='lastName' || dom.id==='editFirstName' || dom.id==='editLastName'){ const label = dom?.nextElementSibling?.innerHTML; dom.setAttribute("required",''); valueMisDom && (valueMisDom.innerHTML = ("Bitte geben Sie Ihr {label} ein.").replace('{label}', label)) }else { if(ele.required == 1){ dom.setAttribute("required", ''); const label = dom?.nextElementSibling?.innerHTML; if(dom.id==='address' || dom.id==='editAddress'){ valueMisDom && (valueMisDom.innerHTML = ("Bitte geben Sie Ihre Adresse ein. (Die Hausnummer ist n\u00f6tig.)")) }else{ valueMisDom && (valueMisDom.innerHTML = ("Bitte geben Sie Ihr {label} ein.").replace('{label}', label)) } }else{ valueMisDom && (valueMisDom.removeAttribute('required')) } } if(ele.validate) { const {regexp} = ele.validate[0] dom.setAttribute("regexp",regexp); patternDom && (patternDom.innerHTML = i18n[ele.id]) }else{ dom.removeAttribute("pattern") } if(ele.length){ dom.setAttribute("maxlength",ele.length); }else{ dom.setAttribute("maxlength",255); } if(ele.validate || ele.required == 1) { if(dom.id==='firstName' || dom.id==='lastName' || dom.id==='editFirstName' || dom.id==='editLastName') { dom.setAttribute("pattern",'^.*[^\\d].*$'); patternDom_1 && (patternDom_1.innerHTML = i18n[ele.id]); } }else { if(dom.id==='firstName' || dom.id==='lastName') { dom.removeAttribute('pattern') } } } }) }; }); return Promise.resolve(); }else{ const valueMisDom = document.querySelector(`.value_missing[validation-for="countryCode"]`); valueMisDom && (valueMisDom.innerHTML = ("Bitte geben Sie Ihr {label} ein.").replace('{label}', "Land")); } } if (!preset) { const p1 = fetch('https://img.staticdj.com/oss/operation/4a17ca7470a23287989ddb670fe9daf4.json').then((r)=>r.json()) const p2 = fetch('https://img.staticdj.com/oss/operation/bc249d6caf62155ab816a9970252a195.json').then((r)=>r.json()) Promise.all([p1,p2]).then((res)=>{ preset = res[0]; locales = res[1]; func(); }); return; } func(); } exportFunction('setValidateRule', setValidateRule);
Mein Adressbuch
Mein Adressbuch