/
Pupa
/
CurrencyConvert
Обзор
Документация
Войти
/
Pupa
/
CurrencyConvert
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
script/app.js
118 строк
3 KB
Pupa
version 0.1
14 фев 2026, 19:46
14 фев 2026, 19:46
cfa801d
Код
Авторство
О чём код?
const api_url = "https://www.cbr-xml-daily.ru/daily_json.js" // Получение api const currency = document.querySelector('.to-cur__select') // Выбор валюты const convert_button = document.querySelector('.convert__btn') // При нажатии кнопки "конвертировать" convert_button.addEventListener('click', function() { if (currency.value == "USD") { // Если выбран доллар console.log(true) if (validateInput() == true) { getDollar() } }else if (currency.value == "EU"){ // Если выбран евро if (validateInput() == true) { getEuro() } } }) //============== валидация поля Input ==================== function validateInput() { const sum_input = document.querySelector('.add-sum__input') let sum_input_value = sum_input.value const error = document.querySelector('.error') if (sum_input_value == '') { const result_text = document.querySelector('.result__p') result_text.textContent = `0` sum_input.style.cssText = 'border: 2px solid red' error.textContent = 'Некорректный ввод' return false } else if (sum_input_value.includes('-')) { const result_text = document.querySelector('.result__p') result_text.textContent = `0` sum_input.style.cssText = 'border: 2px solid red' error.textContent = 'Некорректный ввод' return false } else { error.textContent = '' sum_input.style.cssText = 'border: 2px solid rgba(75, 110, 172, 0.927)' return true } } // ============== Получение api ================== async function getApi(url) { const response = await fetch(url) if (!response.ok) { const error = document.querySelector('.error') error.textContent = 'API недоступен' } else { const data = await response.json() return data } } // =============== Получить курс доллара =============== async function getDollar() { console.log("click") const sum_input_value = document.querySelector('.add-sum__input').value const result_text = document.querySelector('.result__p') const data = await getApi(api_url) const dollar = data.Valute.USD.Value let result = sum_input_value / dollar result = result.toFixed(2) result_text.textContent = `${result} USD` } // =================== Получить курс Евро =================== async function getEuro() { console.log("click") const sum_input_value = document.querySelector('.add-sum__input').value const result_text = document.querySelector('.result__p') const data = await getApi(api_url) const euro = data.Valute.EUR.Value let result = sum_input_value / euro result = result.toFixed(2) result_text.textContent = `${result} EUR` } // Поддержка клавиши Enter document.querySelector('.add-sum__input').addEventListener('keypress', function(e) { if (e.key === 'Enter') { convert_button.click() } })