Advertisement
viligen

formValidation

Jun 9th, 2022
909
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function validate() {
  2.     const userNamePattern = /^[a-zA-Z0-9]{3,20}?$/;
  3.     const passwordPattern = /^\w{5,15}?$/;
  4.     const emailPattern = /^.*@.*\..*$/gm;
  5.  
  6.     let isCompany = false;
  7.     let submitBtn = document.getElementById('submit');
  8.     let validDiv = document.getElementById('valid');
  9.  
  10.     let inputCompanyCheckbox = document.getElementById('company');
  11.     let companyFieldSet = document.getElementById('companyInfo');
  12.     let inputCompanyNumber = document.getElementById('companyNumber');
  13.     let inpConfirmPass = document.getElementById('confirm-password');
  14.     let inpPass = document.getElementById('password');
  15.     let inpEmail = document.getElementById('email');
  16.     let inpUsername = document.getElementById('username');
  17.  
  18.     inputCompanyCheckbox.addEventListener('change', (ev) => {
  19.         if (ev.target.checked == true) {
  20.             companyFieldSet.style.display = 'block';
  21.             isCompany = true;
  22.         } else {
  23.             companyFieldSet.style.display = 'none';
  24.             isCompany = false;
  25.         }
  26.     });
  27.  
  28.     submitBtn.addEventListener('click', onClick);
  29.     function onClick(ev) {
  30.         ev.preventDefault();
  31.  
  32.         let allFieldsBoolean = [];
  33.  
  34.         let isValidUserName =
  35.             userNamePattern.test(inpUsername.value) &&
  36.             inpUsername.value.trim() !== '';
  37.         allFieldsBoolean.push(isValidUserName);
  38.         applyStyle(inpUsername, isValidUserName);
  39.  
  40.         let isValidEmail =
  41.             emailPattern.test(inpEmail.value) && inpEmail.value.trim() !== '';
  42.         allFieldsBoolean.push(isValidEmail);
  43.         applyStyle(inpEmail, isValidEmail);
  44.  
  45.         let isValidPass =
  46.             passwordPattern.test(inpPass.value) &&
  47.             inpPass.value === inpConfirmPass.value &&
  48.             inpPass.value.trim() !== '';
  49.         allFieldsBoolean.push(isValidPass);
  50.         applyStyle(inpPass, isValidPass);
  51.         applyStyle(inpConfirmPass, isValidPass);
  52.  
  53.         if (isCompany) {
  54.             let isValidCompNum =
  55.                 Number(inputCompanyNumber.value) >= 1000 &&
  56.                 Number(inputCompanyNumber.value) <= 9999;
  57.             allFieldsBoolean.push(isValidCompNum);
  58.             applyStyle(inputCompanyNumber, isValidCompNum);
  59.         }
  60.  
  61.         if (allFieldsBoolean.every((el) => el === true)) {
  62.             validDiv.style.display = 'block';
  63.         } else {
  64.             validDiv.style.display = 'none';
  65.         }
  66.     }
  67.     function applyStyle(element, elBool) {
  68.         if (!elBool) {
  69.             element.style.borderColor = 'red';
  70.         } else {
  71.             element.style.border = 'none';
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement