Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Живой калькулятор (https://javascript.ru/forum/events/69877-zhivojj-kalkulyator.html)

Denis M 25.07.2017 11:48

Живой калькулятор
 
Задача сделать живой калькулятор.

1) Чтобы считал стоимость при выборе "variety" и "quantity"
выводил цену.

2) И если ввести правильный промо-код, например [12345,67890]
получалась цена со скидкой -5%.


<!-- ввод переменных -->
<select name="variety">
<option value="200">вид 1</option>
<option value="500">вид 2</option>
</select> 
<select name="quantity">
<option value="4">4</option>
<option value="8">8</option>
<option value="12">12</option>
</select> 

<!-- ввод промокода:--> 

<input type="text" name="promocode">

<!-- если правда: [12345,67890],  
	 то скидка 5%: результат-(результат*0,05) 
	 если ложь или пусто:
	 то результат без изменений!-->

<!-- пишем результат -->

<span id="result">Результат:</span>



document.querySelector('[name=variety]').addEventListener('change', calc, false);
document.querySelector('[name=quantity]').addEventListener('change', calc, false);

function calc() {
let res = (+document.querySelector('[name=variety]').value 
		* +document.querySelector('[name=quantity]').value);

result.textContent = `Результат: ${res}`;
}
calc();

рони 25.07.2017 12:04

Denis M,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Dilettante_Pro 25.07.2017 12:51

Denis M,
И зачем вы сумму умножаете на промо-код?
* +document.querySelector('[name=promocode]').value;

Denis M 25.07.2017 14:04

Промо-код считается правильным тогда, когда совпадёт с числом в массиве)

Denis M 25.07.2017 14:05

Спасибо!
теперь буду знать) извините если что

Denis M 25.07.2017 14:19

Я понимаю как это должно быть в переменных и в формуле, но вот пишется как - не знаю!
var A = variety
var B = quantity
var C = promocode (если введён "12345" или "67890" то равно 0.05)
var D = A*B (цена без скидки)
var F = D-(D*0,05) (цена со скидкой если "C" совпадает с массивом)
var F = D (цена если "C" не совпадает с массивом)


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