calc.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const AMOUNT = 1000; //Младший вес от старшего отличается на 1000, т.к. эта цифра не меняется я объявил ее как константу
  2. let firstInput = document.querySelector("#first-input"); //Нашел первый инпут в который пользователь будет вводить данные для дальнейшей работы
  3. let secondInput = document.querySelector("#second-input"); //Нашел второй инпут, по анологии с первым
  4. let firstType = document.querySelector("#first-type"); //Select, пользователь будет выбирать тип веса для первого инпута
  5. let secondType = document.querySelector("#second-type"); //Select для выбора веса второго инпута
  6. let countFirstWeight = function() { // Функция которая переводит вес первого инпута во второй инпут
  7. let number = firstInput.value;
  8. for(let i = 0; i < firstType.selectedIndex; i++) { // Счетчик, тут я смотрю какой тип выбрал пользователь и перевожу его вес в милиграмы
  9. number *= AMOUNT;
  10. }
  11. for(let i = 0; i < secondType.selectedIndex; i++) { // Перевожу милиграмы из первого счетчика в вес который выбран во втором инпуте
  12. number /= AMOUNT;
  13. }
  14. secondInput.value = number; // Вывожу полученое число во второй инпут
  15. };
  16. let countSecondWeight = function() { // Аналогичная функция, перевожу вес второго инпута в первый
  17. let number = secondInput.value;
  18. for(let i = 0; i < secondType.selectedIndex; i++) {
  19. number *= AMOUNT;
  20. }
  21. for(let i = 0; i < firstType.selectedIndex; i++) {
  22. number /= AMOUNT;
  23. }
  24. firstInput.value = number;
  25. }
  26. // Запуск функций countFirstWeight и countSecondWeight при изменениях в инпутах
  27. firstInput.addEventListener("input", countFirstWeight);
  28. secondInput.addEventListener("input", countSecondWeight);
  29. firstType.addEventListener("input", countFirstWeight);
  30. secondType.addEventListener("input", countSecondWeight);