Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2020, 19:48
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

Калькулятор цен на js
Помогите пожалуйста!
есть скрипт калькулятора, цен на услуги
калькулятор считает цену взависимости от выбранной валюты. мне нужно добавить функцию которая будет перечитывать цены услуг с дополнительным значением.

вот то что у меня есть https://codepen.io/alexej-kachan/pen/oNxXgLx
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2020, 20:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

c4udok,
проблема то в чём?
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2020, 20:24
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

ронни помощь по калькулятору
проблема не могу связать две функции
одна считает цену по курсу(например 1 урок стоит 50$ или 1350 рубл. 8 уроков 80$ и так далее), а вторая функция делает тоже самое но при выборе элемента input и берет значение из его data(тоесть формула такая цена*курс*data из импут )
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2020, 20:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

c4udok,
не осилил ваше описание, но может чем поможет такой вариант ...
заменить полностью на
document.addEventListener("DOMContentLoaded", function() {
    let db = [{
            ISO4217: '$',
            multiply: 1
        },
        {
            ISO4217: 'RUB',
            multiply: 70.5
        },
        {
            ISO4217: 'UAH',
            multiply: 27
        }
    ];
    document.getElementById("valuta").addEventListener('change', function(e) {
        let option = db[this.selectedIndex];
        rebuildPrices(option);
    });

    function rebuildPrices({ISO4217, multiply}) {
        [...document.querySelectorAll('[data-cost]')].forEach(el => {
            const num = el.dataset.cost,
                span = el.querySelector('span');
            span.innerHTML = `${(num * multiply).toFixed(2)} ${ISO4217}`
        })
    }
    rebuildPrices(db[0])
});
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2020, 20:39
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

Проблема в переключатели
<b>Выберите язык преподавания:</b><br>
<input type="radio" name="nameRadio" value="1" checked="checked"/>
<input type="radio" name="nameRadio" value="20"/>
<input type="radio" name="nameRadio" value="300"/>
<input type="radio" name="nameRadio" value="400"/>

вот тут. нужно что бы он также работал как и select, только добавлял в формулу значение value
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2020, 20:45
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

не могу разобраться уже 4 день, помогите пожалуйста
Ответить с цитированием
  #7 (permalink)  
Старый 08.08.2020, 20:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от c4udok
при выборе элемента input
прогресс -- неизвестный инпут обрёл имя name="nameRadio"
Сообщение от c4udok
только добавлял в формулу значение value
формулу напишите.
Ответить с цитированием
  #8 (permalink)  
Старый 08.08.2020, 20:53
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

Формула для калькулятора
при выборе
select валюты ('цена за один урок' * 'курс валюты' + 'добавить знак валюты')

input язык преподавателя(доп цена)- ('цена за один урок'* 'курс валюты(из select валюты)' * 'input.value(nameRadio)' + 'добавить знак валюты' )
Ответить с цитированием
  #9 (permalink)  
Старый 08.08.2020, 21:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

c4udok,
document.addEventListener("DOMContentLoaded", function() {
    let db = [{
            ISO4217: '$',
            multiply: 1
        },
        {
            ISO4217: 'RUB',
            multiply: 70.5
        },
        {
            ISO4217: 'UAH',
            multiply: 27
        }
    ];
    document.addEventListener('change', function({target}) {
        if(target.closest('#valuta, [name="nameRadio"]')) {
        let option = db[document.querySelector('#valuta').selectedIndex];
        rebuildPrices(option);
        }

    });

    function rebuildPrices({ISO4217, multiply}) {
        const val = document.querySelector('[name="nameRadio"]:checked').value || 1;
        document.querySelector('#rezultatRadio').innerHTML = val;
        [...document.querySelectorAll('[data-cost]')].forEach(el => {
            const num = el.dataset.cost,
                  span = el.querySelector('span');
            span.innerHTML = `${(num * multiply * val).toFixed(2)} ${ISO4217}`;
        })
    }
    rebuildPrices(db[0])
});

Последний раз редактировалось рони, 08.08.2020 в 21:18.
Ответить с цитированием
  #10 (permalink)  
Старый 08.08.2020, 21:33
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

Блиииин СПАСИБО! СПАСИБО!!
Все работает!

Капец столько возился!
скажи а есть возможнотсь сделать округление до 0 для <h5 class="text-center pricepacketprice" data-cost='105.5'><span id="indificator">$105.5</span></h5>

я не хочу наглеть конечно
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS калькулятор, работа с отрицательными числами. TOPHOP Общие вопросы Javascript 1 24.06.2015 13:13
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Пример тестовых заданий на js junior elshaarawy Учебные материалы 3 26.03.2015 15:17
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Помогите найти калькулятор на js GennadiyZm Общие вопросы Javascript 1 29.07.2011 16:26