【问题标题】:jquery calculate total amount of billjquery计算账单总额
【发布时间】:2023-03-23 15:24:01
【问题描述】:

我的表单中有 3 个文本字段。第一个取账单中数量的价值,第二个取每件商品的价格价值,第三个取适用税金的价值。我在第 4 个文本字段中显示最终账单金额。我试过以下代码:

$(document).ready(function () {

    $('#Quantity, #Rate, #TaxAmount').keyup(function () {

        var total = 0.0;
        var qty = $('#Quantity').val();

        var rate = $('#Rate').val();

        var tax = ('#TaxAmount').val();

        var amount = (qty * rate);
        total = tax + amount;


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

运行代码后,ID 为 TotalAmount 的第 4 个文本框中没有显示任何内容。无法弄清楚是什么问题。有人请指导。

【问题讨论】:

    标签: javascript jquery events dom


    【解决方案1】:

    首先,您在var tax 行中缺少$

    除此之外,您需要使用 parseFloat 将您从 .val() 获得的字符串转换为数字,以便能够对它们进行算术运算。

    $(document).ready(function() {
      var $fields = $('#Quantity, #Rate, #TaxAmount');
      $fields.keyup(function() {
        var qty = parseFloat($('#Quantity').val());
        var rate = parseFloat($('#Rate').val());
        var tax = parseFloat($('#TaxAmount').val());
        var amount = (qty * rate);
        var total = total = tax + amount;
        $('#TotalAmount').val(total);
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input id="Quantity" placeholder="Quantity"> *
    <input id="Rate" placeholder="Rate"> +
    <input id="TaxAmount" placeholder="Tax"> =
    <input id="TotalAmount" readonly>

    【讨论】:

      【解决方案2】:

      您忘记了('#TaxAmount') 之前的$ 符号:

      $(document).ready(function () {
      
          $('#Quantity, #Rate, #TaxAmount').keyup(function () {
      
              var total = 0;
              var qty = $('#Quantity').val();
      
              var rate = $('#Rate').val();
      
              var tax = $('#TaxAmount').val(); // here
      
              var amount = (qty * rate);
              total = tax + amount;
      
      
              $('#TotalAmount').val(total);
          });
      });
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,但它没有解释为什么或如何回答这个问题。请include an explanation for your code,因为这确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      相关资源
      最近更新 更多