Калькулятор цен на js
:cray: Помогите пожалуйста!
есть скрипт калькулятора, цен на услуги калькулятор считает цену взависимости от выбранной валюты. мне нужно добавить функцию которая будет перечитывать цены услуг с дополнительным значением. вот то что у меня есть https://codepen.io/alexej-kachan/pen/oNxXgLx |
c4udok,
проблема то в чём? |
ронни помощь по калькулятору
проблема не могу связать две функции
одна считает цену по курсу(например 1 урок стоит 50$ или 1350 рубл. 8 уроков 80$ и так далее), а вторая функция делает тоже самое но при выборе элемента input и берет значение из его data(тоесть формула такая цена*курс*data из импут ) |
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])
});
|
Проблема в переключатели
<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 |
не могу разобраться уже 4 день, помогите пожалуйста
|
Цитата:
Цитата:
|
Формула для калькулятора
при выборе
select валюты ('цена за один урок' * 'курс валюты' + 'добавить знак валюты') input язык преподавателя(доп цена)- ('цена за один урок'* 'курс валюты(из select валюты)' * 'input.value(nameRadio)' + 'добавить знак валюты' ) |
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])
});
|
Блиииин СПАСИБО! СПАСИБО!!:dance: :dance: :dance:
Все работает! Капец столько возился! скажи а есть возможнотсь сделать округление до 0 для <h5 class="text-center pricepacketprice" data-cost='105.5'><span id="indificator">$105.5</span></h5> я не хочу наглеть конечно |
| Часовой пояс GMT +3, время: 19:33. |