代码之家  ›  专栏  ›  技术社区  ›  Vpa

使用JQuery自动加减数字不能正确减法

  •  1
  • Vpa  · 技术社区  · 6 年前

    adding 部分是正确的,就像我想要达到的,但是如果我去掉数字,它就会离开 1 在total字段中,当数据不存在时也会出现,而且如果我一次删除了所有数字,但它没有减去。

    你可以从下面看到,为我糟糕的英语感到抱歉。

    注:1。输入数字并删除 1 by 1 然后检查总数(不可编辑)。2。输入数字,选择所有数字,删除,然后检查总数,你就会明白我的问题。

    $(document).on('input change blur', '.input_first, .input_second', updateSchedule);
    
    function updateSchedule() {
      var sum = 0, sum1 = 0, total = 0;
      $('.input_first, .input_second').each(function(i) {
        if (!isNaN(this.value) && this.value.length != 0) {
          if ($(this).hasClass('input_first')) {
            sum += parseFloat(this.value);
            $('#first_total').val(sum.toFixed(2));
            $('#all_total').val(sum.toFixed(2));
          } else if($(this).hasClass('input_second')) {
            sum1 += parseFloat(this.value);
            $('#second_total').val(sum1.toFixed(2));
            total = parseFloat(sum + sum1);
            $('#all_total').val(total.toFixed(2));
          }
        }
      });
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
        1st data<br>
        <input type="number" class="input_first" placeholder="enter">
        <input type="number" class="input_first" placeholder="enter">
        <input type="number" readonly id="first_total">
        <hr>
    
        2nd Data<br>
        <input type="number" class="input_second" placeholder="enter">
        <input type="number" class="input_second" placeholder="enter">
        <input type="number" readonly id="second_total">
        <hr>
    
        Total all<br>
        <input type="number" readonly id="all_total">
    1 回复  |  直到 6 年前
        1
  •  0
  •   Flash    6 年前

    我想你应该做 else statement 给你当前的功能

    function updateSchedule() {
      var sum = 0, sum1 = 0, total = 0;
      $('.input_first, .input_second').each(function(i) {
        if (!isNaN(this.value) && this.value.length != 0) {
          .....
        }else{
           //todo clear the total field
           $('#all_total').val(0.00);
        }
      });
    }
    

    每次都清除total字段 Nan 最好保存为 zero 0