Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Реализация функционала расчета валюты (https://javascript.ru/forum/dom-window/82646-realizaciya-funkcionala-rascheta-valyuty.html)

Max96 06.06.2021 01:21

Реализация функционала расчета валюты
 
Доброй ночи форумчане! Обучаюсь, возникла необходимость сделать функционал для конвертации валют с запросом на сервер, все вроде работает, но есть маленькое "но":help: , вот код:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style/style.css">
    <script src="script/script.js" defer></script>
    <title>Exchange</title>
</head>
<body>
    <div class="moneyCalc">
        <div class="moneyCalc__section1">
            <div class="UAH_block">
                <p>Введите сумму в UAH</p>
                <input type="number" name="sumUAH" id="sumUAH">
            </div>
            <div class="Select_block">
                <select name="currenclySelection" id="curSelect">
                    <option value="USDcurr">USD</option>
                    <option value="EUROcurr">EURO</option>
                </select>
            </div>
            <div class="Result_block">
                <p class="resultTitle">Результат при обмене:</p>
                <input type="number" name="sumResult" id="sumResult">
            </div>
        </div>
        <div class="moneyCalc__section2">
            <p>Выбрана валюта "Выбранная пользователем валюта", курс "Выбранная валюта" к UAH составляет:</p>
            <p>"Текущий курс"</p>
        </div>
    </div>
</body>
</html>



'use strict';

const inputUAH = document.querySelector('#sumUAH'),
      inputCurrencly = document.querySelector('#sumResult');

inputUAH.addEventListener('input', () => {
    let request = new XMLHttpRequest();
    request.open('get', 'json/value.json');
    request.setRequestHeader('Content-type', 'application/json; charset=utf-8');
    request.send();

    request.addEventListener('readystatechange', () => {
        if (request.readyState === 4 && request.status === 200) {
            let data = JSON.parse(request.response);
            inputCurrencly.value = +(inputUAH.value/data.currency.usd).toFixed(2);
        } else {
            inputCurrencly.value = 'Что-то пошло не так!';
        }
    })
})


У меня в форме select в html есть два свойства для доллара и евро, хочу в обработчик событий добавить возможность в зависимости от выбора валюты пользователем, рассчитывать её курс, для доллара свой, а для евро соответственно свой, как это реализовать? Ах да, пока работаю через XMLHttpRequest и через файлик JSON, JSON файл выглядит следующим образом:
{
    "currency": {
        "usd": "27.453562",
        "euro": "34.669842"
    }
}


Буду очень благодарен за помощь!!! Я просто пока с формами и свойствами JS для форм не очень работаю(, если несложно, можно ссылку на свойства или на похожие задачи с решением! Всем профита!:dance:

Max96 06.06.2021 01:31

Понимаю, что в обработчике событий request.addEventListener('readystatechange'...) должно быть что-то вроде:

if ( Пользователь выбрал value="USDcurr") {
  inputCurrencly.value = +(inputUAH.value/data.currency.usd).toFixed(2);
} else { 
  inputCurrencly.value = +(inputUAH.value/data.currency.euro).toFixed(2);
}


Просто какое свойство в условии поставить, не могу найти или туплю(

рони 06.06.2021 11:14

Max96,
if(curSelect.value == "USDcurr")


Часовой пояс GMT +3, время: 18:12.