@Shalindor

Как отправить содержимое input в значение ключа объекта через addEventListener?

const obj = {
  distance: {
    unit: 'm',
    value: '' /** вот в это ключ пытаюсь поместить значение но оно не обновляется данными с инпута хотя если 
     посмотреть через консоль лог obj.distance.value получает данные
**/
  },
  convert_to: 'cm'
};
const inputIn = document.querySelector('.converter__input-in');

inputIn.addEventListener('keyup', (e) => {
  e.preventDefault();
  obj.distance.value = +inputIn.value
  console.log(obj.distance.value)
});
const convertTo = (obj) => {
    const inUnit = obj.distance.unit;
    const unit = obj.convert_to;
    const inValue = obj.distance.value;
    let sum;
    const inputOut = document.querySelector('.converter__input-out');
    // in meters
    if (inUnit === 'cm' && unit === 'm') {
        sum = inValue * 0.01;
    }
    if (inUnit === 'in' && unit === 'm') {
        sum = inValue * 0.254;
    }
    if (inUnit === 'ft' && unit === 'm') {
        sum = inValue * 0.3048;
    }
    // in centimeters
    if (inUnit === 'm' && unit === 'cm') {
        sum = inValue * 100;
    }
    if (inUnit === 'in' && unit === 'cm') {
        sum = inValue * 2.54;
    }
    if (inUnit === 'ft' && unit === 'cm') {
        sum = inValue * 30.48;
    }
    // in inches
    if (inUnit === 'm' && unit === 'in') {
        sum = inValue * 39.3701;
    }
    if (inUnit === 'cm' && unit === 'in') {
        sum = inValue * 0.393701;
    }
    if (inUnit === 'ft' && unit === 'in') {
        sum = inValue * 12;
    }
    // in foot
    if (inUnit === 'm' && unit === 'ft') {
        sum = inValue * 3.28084;
    }
    if (inUnit === 'cm' && unit === 'ft') {
        sum = inValue * 0.328084;
    }
    if (inUnit === 'in' && unit === 'ft') {
        sum = inValue * 0.833333;
    }

    const value = +sum.toFixed(2);
    const result = { unit, value };
    inputOut.value = value;

    return result;
};

console.log(convertTo(obj));

<input class="converter__input-in" name="value"  type="text">
<input class="converter__input-out" type="text">

  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
victormayorov
@victormayorov
Frontend разработчик
Функцию convertTo необходимо вызывать каждый раз при изменении значения в первом input'e.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
02 июн. 2024, в 18:55
35000 руб./за проект
02 июн. 2024, в 18:32
5000 руб./за проект
02 июн. 2024, в 17:29
1000 руб./в час