Advertisement
Todorov_Stanimir

01. Form Acceptance JS Advanced Exam Preparation - July 2019

Oct 20th, 2019
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function acceptance() {
  2.     document.getElementById('acceptance').addEventListener('click', addProduct)
  3.  
  4.     function addProduct() {
  5.         let [companyEl, productEl, quantityEl, scrapeEl] = document.querySelectorAll('input[type=text]');
  6.  
  7.         if (valueElementisNotEmptyString(companyEl) && valueElementisNotEmptyString(productEl)
  8.             && valueElementsIsNumber(quantityEl) && valueElementsIsNumber(scrapeEl)
  9.             && quantityIsBiggerThenScrap(quantityEl, scrapeEl)) {
  10.             const companyName = companyEl.value;
  11.             const productName = productEl.value;
  12.             const productQuantity = Number(quantityEl.value);
  13.             const scrapeQuantity = Number(scrapeEl.value);
  14.  
  15.             let warehouseEl = document.getElementById('warehouse');
  16.             let newDivEl = document.createElement('div');
  17.             let newPEl = document.createElement('p');
  18.             newPEl.textContent = `[${companyName}] ${productName} - ${productQuantity - scrapeQuantity} pieces`;
  19.             let butOutOfStock = document.createElement('button');
  20.             butOutOfStock.textContent = 'Out of stock';
  21.             butOutOfStock.setAttribute('type', 'button')
  22.             butOutOfStock.addEventListener('click', removeProduct);
  23.             newDivEl.appendChild(newPEl);
  24.             newDivEl.appendChild(butOutOfStock);
  25.             warehouseEl.appendChild(newDivEl);
  26.         }
  27.         //test 9
  28.         cleanValue(companyEl, productEl, quantityEl, scrapeEl)
  29.     }
  30.  
  31.  
  32.     function removeProduct(e) {
  33.         //test 4, 8 and 10
  34.         e.target.parentElement.remove()
  35.     }
  36.  
  37.     function cleanValue(companyEl, productEl, quantityEl, scrapeEl) {
  38.         companyEl.value = '';
  39.         productEl.value = '';
  40.         quantityEl.value = '';
  41.         scrapeEl.value = '';
  42.     }
  43.  
  44.     function valueElementisNotEmptyString(element) {
  45.         return element.value !== '' ? true : false;
  46.     }
  47.  
  48.     function valueElementsIsNumber(element) {
  49.         return element.value.match(/^[\d]+[.]*[\d]*$/gi) ? true : false;
  50.     }
  51.  
  52.     function quantityIsBiggerThenScrap(quantityEl, scrapeEl) {
  53.         return Number(quantityEl.value) > Number(scrapeEl.value) ? true : false;
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement