Как создать функцию вычитания в JavaScript - PullRequest
1 голос
/ 21 мая 2019
  1. Я пытаюсь сделать сложение - сложить всю цену и вычесть - вычесть функцию цены
  2. результат как десятичное число / число с плавающей запятой

$('.add').keyup(function () {
    
    var sum = 0;

    $('.add').each(function() {
        sum += Number($(this).val());
    });

    $('#total').val(sum);

});
<strong>price1 : </strong>
<input type="text" name="IT" class="add" style="width:150px" required><br><br>

<strong>price2 : </strong>
<input type="text" name="roadtax" class="add" style="width:150px" required><br><br>

<strong>price3 : </strong>
<input type="text" name="servis" class="add" style="width:150px" required><br><br>

<strong>price4 : </strong>
<input type="text" name="other" class="add" style="width:150px" required><br><br>

<strong>discount : </strong>
<input type="text" name="disc" class="sub" style="width:150px" required><br><br>

<strong>total : </strong>
<input type="text" id="total" name="total" style="width:150px">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script>
  1. Может выполнять вычитание
  2. Я ожидаю, что результат будет в десятичной / с плавающей запятой

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Попробуйте это:

$('.add').keyup(
    var sum = 0;

    $('.add').forEach(function() {
        sum += $(this).val();
    });

    sum -= $('.sub').val();

    $('#total').val(sum);
});

Или, если это не сработает, тогда вы можете присвоить каждому текстовому полю свой уникальный идентификатор (например, id = "roadTax"), тогда вы можете сделать это:

$('.add').keyup(
    var sum = 0;

    sum += $("#roadTax").val();
    sum += $("#services").val();
    sum += $("#other").val();

    sum -= $('#discount').val();

    $('#total').val(sum);
});
0 голосов
/ 21 мая 2019

Если я правильно понял ваш вопрос, это должно вам помочь.

  1. Слушайте также события sub -входов.
  2. Вычесть значение sub -входов.
  3. Вызовите toFixed суммы, чтобы получить десятичный вывод.

$('.add, .sub').keyup(function () { // 1
    
    var sum = 0;

    $('.add').each(function() {
        sum += Number($(this).val());
    });
    
    $('.sub').each(function() {
        sum -= Number($(this).val()); // 2
    });

    $('#total').val(sum.toFixed(2)); // 3

});
<strong>price1 : </strong><input type="text" name="IT" class="add" style="width:150px" required><br><br>
<strong>price2 : </strong><input type="text" name="roadtax" class="add" style="width:150px"required><br><br>
<strong>price3      : </strong><input type="text" name="servis" class="add" style="width:150px"required><br><br>
<strong>price4  : </strong><input type="text" name="other" class="add" style="width:150px"required><br><br>
<strong>discount : </strong><input type="text" name="disc" class="sub" style="width:150px"required><br><br>
<strong>total : </strong><input type="text" id="total" name="total" style="width:150px">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script>
...