【问题标题】:How do I include/add multiple calculations using JavaScript?如何使用 JavaScript 包含/添加多个计算?
【发布时间】:2012-11-15 19:19:25
【问题描述】:

预先警告,我是 JavaScript 新手,但我可以理解已经编写好的计算,这是我自己编写的问题。我正在尝试为我们的网站创建一个在线税收计算器。我找到了工作的基础,但我需要更新它,以便计算正确。

目标:
用户输入他们的总收入并点击“计算”按钮。结果应显示应付税款、医疗保险税,最后是净收入。净额 = 总税 - 医疗保险。

我在哪里:
我找到了一些代码,这些代码为我提供了一些税收计算,我已将其更新为正确的值。但是,目前适用于所有税级的医疗保险价值 (1.5%) 是不正确的,实际上也有 3 个不同的级别。

我不确定如何将这两个计算合并在一起,然后从总收入中扣除这些计算得出净结果?我还没有添加任何东西来进行最终计算,在这个阶段,我正在尝试解决如何在一个脚本中执行多个功能。

我试图通过一次进行一项计算来逐步建立这一点,但一尝试就被难住了。我在http://www.faa.net.au/test/ 创建了一个测试页面。

我非常感谢您对此的任何帮助。我正在等待 JavaScript 指南,以便真正抽出一些时间并正确学习 JavaScript。

我尝试添加的额外医疗保险计算如下:

// Calculation below needs to replace Medicare above
if (income>0 && income<=19404) {
    medicare = (income*0)/100;
}
else if (income>19404 && income<=22828) {
    medicare = (income*10)/100;
}
else if (income>22828) {
    medicare = (income*1.5)/100;
}

【问题讨论】:

  • 你能在这里粘贴和测试你到目前为止所做的事情吗? jsfiddle.net
  • 您的实际问题是什么?
  • 你应该在这里发布一个最小的例子,而不是其他地方。
  • 这个中间的医疗保险金额不应该是(income*1)/100吗?
  • 我尝试将当前代码粘贴到 jsfiddle,但它不起作用。我应该在这里粘贴我当前的 JavaScript 吗?

标签: javascript html css calculator


【解决方案1】:

你需要的javascript代码和这个类似,我相信:

// I am using a javascript library called jQuery.
$(function(){
    // On clicking the Calculate button
    $('#calculate').on('click', function(){
        // Get the value of user supplied income from the textbox
        var income = parseInt($('#preIncome').val().trim()),
            postIncome = 0,
            medicare = 0;
        console.log(income);
        if(income > 0){
            // Calculation below needs to replace Medicare above
            if (income>0 && income<=19404) {
                medicare = (income*0)/100;
            }
            else if (income>19404 && income<=22828) {
                medicare = (income*10)/100;
            }
            else if (income>22828) {
                medicare = (income*1.5)/100;
            }
            // Calculate the new income based on derived medicare value
            postIncome = income - medicare;
        }
        // Set the new medicare and income values to the textboxes
        $('#postIncome').val(postIncome);
        $('#medicare').val(medicare);
    });
});​

这里有一个工作演示:http://jsfiddle.net/pratik136/YdWNA/

【讨论】:

    【解决方案2】:

    如果我正确理解了这个问题,我认为您只需要使用两个变量,一个用于医疗保险计算,一个用于税率。然后当你有了这些,你就可以计算净收入了。

    所以在 JavaScript 中,它可能看起来像这样:

    var medicare;
    var tax; 
    var income;
    // This is just your medicare calculation
    if (income>0 && income<=19404) {
        medicare = (income*0)/100;
    }
    else if (income>19404 && income<=22828) {
        medicare = (income*10)/100;
    }
    else {
        medicare = (income*1.5)/100;
    }
    // Hypothetical Tax calculation (I don't know the real tax rates)
    if (income>0 && income<=20000) {
        tax = (income*25)/100;
    }
    else {
        tax = (income*40)/100;
    }
    // and now the net income using the calculated values
    var netIncome=income-tax-medicare;
    

    【讨论】:

      【解决方案3】:

      这是您表单的主要内容:

      <form name="calc">
      
        Gross Income: <input type="text" class="innerc resform" size="15" name="income">
      
        <input type="button" onclick="calculate(this)" name="result" value="Calculate"
         class="calcButton">
      
        Income Tax:    <input type="text" size="15" class="resform" name="tax">
        Medicare Levy: <input type="text" size="15" class="resform" name="medicare">
        Net Income:    <input type="text" size="15" class="resform" name="net">
      </form>
      

      如果您从计算按钮传递this(注意更改的侦听器和添加的值),计算医疗保险费的函数可以是:

      function calculate(element) {
        var form = element.form;
        var income = form.income.value;
      
        // 0 for income less than threshold
        var medicare = 0;
      
        // Add 1% of income between 19404 and 22828
        if (income > 19404 && income <= 22828) {
          medicare = (income - 19404) * 0.01;
        }
      
        // Add 1.5% of income over 22828
        if (income > 22828) {
          medicare += (income - 22828) * 0.015;
        }
      }
      

      希望这会让你继续前进。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-02
        • 2016-11-01
        • 1970-01-01
        • 2021-02-19
        • 2015-02-03
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多