繁体   English   中英

如何获得 2 个输入的值,计算它们并将结果放入另一个

[英]How can I get the value of 2 inputs, calculate them and put the result in another

我需要重构此代码以提高性能,我取两个输入的值,我需要计算它们并将其显示在另一个

            var price;
            var percentage;
            var value;

            function total() {
                value = ((price* (percentage/ 100)) + parseFloat(price));

                $("#Total").val(value.toFixed(2));
            }

            $("#price").keyup(function () {
                price= $(this).val();
                total()
            });
            $("#percentage").keyup(function () {
                percentage= $(this).val();
                total()
             
            });
         

你不应该使用这样的全局变量,它们可能会导致竞争条件。

// this self executing function will prevent the *Field variables to be bound to your browsers' window variable. 
(function() {   

  let priceField = $("#price");
  let percentageField = $("#percentage");
  let totalField = $("#Total");

  function total() {
    let price = priceField.val();
    let percentage = percentageField.val();
    
    let value = (price * (percentage/ 100)) + parseFloat(price);

    totalField.val(value.toFixed(2));
  }

  priceField.keyup(function () {
    total()
  });
  percentageField.keyup(function () {
    total()
  });

})()

我不得不说,这是您问题的解决方案,但它不是最好的解决方案。 但根据我的猜测,这个解决方案需要简单。

一些额外的提示是有选择地搜索像$("input#price")这样的输入字段,以防止任何其他潜在的冲突,尽管 id 应该是唯一的。

我还建议在代码中添加一些保护。 如果有人输入了一些非数值,会发生什么。 是否应该在进行计算之前从输入中删除它们,或者它们是否应该向用户触发错误,指出用户的输入无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM