Ребята, подскажите пожалуйста как реализовать такую вещь, есть 1 селект и 1 инпут туда number, при выборе чего то из селекта и ввода числа в инпут, напр.при выборе банана происходит умножение цены банана на количество, а результат выводится чуть ниже
<form>
<select>
<option value="Banan">Банан</option>
<option value="Apple">Яблоко</option>
<option value="Pear">Груша</option>
<option value="Grapes">Виноград</option>
</select>
<input type="number" value="amount" min="1" max="50" step="1" placeholder="Укажите предположительное количество (кг)">
</form>
<div>Здесь результат умножения</div>
Чтобы не расстраивать учительницу математики и не умножать килограммы на бананы, надо все-таки добавить цену к каждой опции, а затем уже умножать.
var fruit = document.getElementById('fruit'),
weight = document.getElementById('weight'),
result = document.getElementById('result');
fruit.addEventListener('change', function() {
listener(fruit);
});
weight.addEventListener('change', function() {
listener(fruit);
});
function listener(elem) {
var price = elem.querySelector(':checked').getAttribute('data-price'),
kg = weight.value;
result.innerHTML = multiply(price, kg);
}
function multiply(a, b) {
return a * b;
}
<form>
<select id="fruit">
<option value="Banan" data-price="100" selected>Банан</option>
<option value="Apple" data-price="150">Яблоко</option>
<option value="Pear" data-price="200">Груша</option>
<option value="Grapes" data-price="250">Виноград</option>
</select>
<input id="weight" type="number" value="amount" min="1" max="50" step="1" placeholder="Укажите предположительное количество (кг)">
</form>
<div id="result">Здесь результат умножения</div>
function mkChange(item) {
var kg = document.getElementById('kg').value;
document.getElementById('total').innerHTML = item.value * kg;
};
function mkChange1(item) {
var select = document.getElementById("mk");
var fruct = select.options[select.selectedIndex].value;
document.getElementById('total').innerHTML = item.value * fruct;
};
<form>
<select id="mk" onchange="mkChange(this);">
<option value="10">Банан - 10p</option>
<option value="20">Яблоко - 20p</option>
<option value="30">Груша - 30p</option>
<option value="40">Виноград - 40p</option>
</select>
<input type="number" id="kg" value="0" min="1" max="50" step="1" placeholder="Укажите предположительное количество (кг)" onkeyup="mkChange1(this);" onchange="mkChange1(this);">
</form>
<div>Здесь результат умножения: --- <span id="total">00</span>p</div>
calculate = function() {
var e = document.getElementsByTagName("select")[0];
var price = e.options[e.selectedIndex].attributes['data-price'].value;
var amount = document.getElementsByTagName("input")[0].value;
var fullprice = parseInt(price) * parseInt(amount);
document.getElementById("results").innerText = fullprice;
}
<form>
<select onchange=calculate()>
<option value="Banan" data-price="2">Банан</option>
<option value="Apple" data-price="3">Яблоко</option>
<option value="Pear" data-price="4">Груша</option>
<option value="Grapes" data-price="5">Виноград</option>
</select>
<input onchange=calculate() type="number" value="amount" min="1" max="50" step="1" placeholder="Укажите предположительное количество (кг)">
</form>
<div id="results">Здесь результат умножения</div>
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости