Проблема с математическим добавлением html входов - PullRequest
0 голосов
/ 16 марта 2020

Все,

Я использую 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>
                &nbsp; <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>
                &nbsp; <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) ? Спасибо заранее за любые данные. Я ценю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...