Все,
Я использую mvc и jquery в моем проекте. Мои входы создаются динамически с «foreach» l oop, например:
<form class="form-horizontal" id="myForm">
@foreach (var item in days)
{
<div class="form-group">
<label class="pure-material-textfield-outlined">
<input required id="inputText" name="inputText" placeholder=" " autofocus type="text" class="number fax" />
<span>
<i class="fas fa-dollar-sign" style="line-height: unset"></i>
<span style="margin-top: 2px"> @item </span>
</span>
</label>
</div>
}
<div class="form-group">
<label class="pure-material-textfield-outlined">
<input required id="total" readonly="readonly" disabled="disabled" name="total" placeholder=" " type="text" class="number" />
<span>
<i class="fas fa-dollar-sign" style="line-height: unset"></i>
<span style="margin-top: 2px"> Total Sales </span>
</span>
</label>
</div>
<div class="form-group center">
<button type="submit" value="Save" class="btn-md btn-default btn-success"> <i class="fas fa-check"> </i> Save</button>
</div>
<div class="form-group center">
<a title="Exit" href=@Url.Action("Index", "Home")> <i class="fas fa-arrow-circle-left"> </i> Back to Main Page</a>
</div>
</form>
Входы имеют функцию, которая преобразует вводимые данные в валютные значения:
//Transforms input into currency format
$('input.number').keyup(function (event) {
// skip for arrow keys
if (event.which >= 37 && event.which <= 40) {
event.preventDefault(); }
$(this).val(function (index, value) {
return value
.replace(/\D/g, "")
.replace(/([0-9])([0-9]{2})$/, '$1.$2')
.replace(/\B(?=(\d{3})+(?!\d)\.?)/g, ",")
;
});
});
Наконец, я добавляю числа по мере их ввода пользователем:
var $form = $('#myForm'),
$summands = $form.find('.fax'),
$sumDisplay = $('#total');
$form.delegate('.fax', 'keyup', function () {
var sum = 0;
$summands.each(function () {
var value = parseFloat($(this).val());
if (!isNaN(value)) sum += value;
});
$("#total").val(sum.toFixed(2));
});
Математическая операция работает, но только если пользователь вводит число до 999,99 , если идет кроме того, это займет всего First Di git. Любые идеи о том, как это может позволить пользователям считать, скажем, до миллиардов (999 999 999 999,99) ? Спасибо заранее за любые данные. Я ценю.