Всем привет.
Столкнулся с такой проблемой.
Есть поле (количество).
Значение этого поля меняется 2-мя способами.
1 Вариант.
Есть функция (запуск при изменении другого поля), которая передает в это поле некоторое значение.
Далее производятся вычисления.
2 Вариант.
Это поле напрямую изменяется пользователем. И далее те же расчеты.
При этом получилось 2 функции, которые выполняют одну и туже работу, но запускаются при изменении 2-х разных полей.
Есть ли вариант как-то написать условие, что запуск функции происходит при изменении любого из перечисленных полей?
<div id="calc">
<div class="description">
<h4>Описание товара</h4>
...<br>
Кол-во м2 в уп.: <span id="count">1.9218</span> м2
</div>
<div class="price">
<span>Цена:</span>
<span class="old-price">1590</span>
<span>руб.</span>
<span class="new-price">1462</span>
<span>руб.</span>
</div>
<div>
<label for="u-m">Введите требуюмую площадь: </label>
<input type="number" step="any" name="user_amount" id="u-m">
<span>( <span class="calc-amount">?</span> м) = <span class="calc-price">?</span> руб.</span>
<br><br>
<label for="b-m">Количество упаковок: </label>
<input type="number" step="1" name="bag_amount" id="b-m">
</div>
</div>
$(document).ready(function() {
$("#u-m").change(function() {
var um = $("#u-m").val(); // Вводимая пользователем площадь
var count = $("#count").html(); // Сколько м.кв. в 1 упаковке
var amount = Math.ceil(um / count); // Высчитываем сколько нужно упаковок, чтобы покрыть площадь
$("#b-m").val(amount); // Передаем полученное количество в поле, дальше все расчеты ведем от этого поля
$(".calc-amount").text(amount * count); // Передаем в .calc-amount реальную площадь этого количества упаковок
var price = $(".new-price").html(); // Получаем цену за м.кв.
$(".calc-price").text((amount * count * price).toFixed(2)); // Считаем и передаем стоимость полученных м.кв. в поле
});
$("#b-m").change(function() {
var amount = $("#b-m").val(); // Берем значения из поля (это делается на случай, если пользователь сам туда вписал число)
var count = $("#count").html(); // Сколько м.кв. в 1 упаковке
$(".calc-amount").text(count * amount); // Передаем в .calc-amount покрытие заданным количеством упаковок
var price = $(".new-price").html(); // Получаем цену за м.кв.
$(".calc-price").text((amount * count * price).toFixed(2)); // Считаем и передаем стоимость полученных м.кв. в поле
});
});