Задать вопрос
@nata32

Как перемножить значения из текстовых полей?

Есть 3 текстовых поля, при вводе в них значений они должны перемножиться и отобразиться в четвёртом текстовом поле. Пересмотрела кучу примеров, но все они с кнопкой "Подсчитать", а нужно, чтобы результат вывелся автоматом после заполнения всех 3 полей в четвёртое.
Нашла вот такой пример:

$.fn.multiplicator = function(...selectors) {
   let inputs = selectors.map(s => $(s));
  const recalc = () => inputs.reduce((r, $el) => r*parseFloat($el.val()), 1);
  inputs.forEach($el => $el.on(this.data('event')||'blur', () => this.text(recalc())));
}
$('#res').multiplicator('#arg1', '#arg2', '#arg3');

<script src=https://code.jquery.com/jquery-3.6.0.min.js></script>
<input id=arg1 value="1" />
<input id=arg2 value="1" />
<input id=arg3 value="1" />
<div id=res data-event=input></div>

Но в нём результат выводиться в div, а нужно в текстовое поле, и первоначально поля должны быть пустые, без значений, тут если убрать 1, то при вводе выдаёт NaN.
  • Вопрос задан
  • 339 просмотров
Подписаться 2 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
у меня было похожее — тут два места: this.text(recalc()) замени на this.val(recalc()), и перед присвоением добавь if (inputs.every($el => $el.val())) — тогда пустые поля не дадут NaN. Ну и #res сделай &lt;input readonly&gt; чтобы в форму попало.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы