.col-lg-1
- это DIV - вы присоединяете событие изменения и пытаетесь получить this.value
из DIV, который не будет работать.
Вместо этого кэшируйте свои входные данные и (при "input"
событии) .reduce()
их значения в целое число:
jQuery(function($) {
var $inp = $('.input-sm'); //PS: Use a more specific selector than this one
var $res = $('#result');
$inp.on('input', function() {
const tot = $inp.get().reduce(function(acc, el) {
acc += parseInt(el.value) || 0;
return acc;
}, 0);
$res.text(tot);
});
});
<div>
<label>TEST 1 </label>
<input type="number" name="mt_ca1" class="inp form-control input-sm rounded-0" required value="0">
</div>
<div class="col-lg-1" id="t2">
<label>TEST 2</label>
<input type="number" name="mt_ca2" class="form-control input-sm rounded-0" required value="0">
</div>
<div class="col-lg-1" id="assg">
<label>TEST 3</label>
<input type="number" name="mt_ca3" class="form-control input-sm rounded-0" required value="0">
</div>
<div class="col-lg-1">
<label>TOTAL</label>
<output id="result"></output>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>