Почему не срабатывают события change keyup input?

Поле input[name="price"] было изменено, но события change keyup input почему то не сработали

$(document).on('change keyup input', 'input[name="price"], input[name="amount"]', function() {
  let price = $('input[name="price"]').val();
  let amount = $('input[name="amount"]').val();
  $('input[name="total"]').val(parseFloat(price) * parseFloat(amount));
});

function setPrice(price = 100) {
   $('input[name="price"]').val(price);
}

setPrice(100);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="price">
<input name="amount" value="100">
<input name="total">


Ответы (1 шт):

Автор решения: Алексей Шиманский

События срабатывают при ручном изменении значений,а не программном. Чтобы заставить сработать событие программно, надо его "триггернуть"

Например так:

$('input[name="price"]').trigger('change'); // $('input[name="price"]').val(price).trigger('change');
→ Ссылка