【问题标题】:I still get NaN even after converting calculations using parseInt即使使用 parseInt 转换计算后,我仍然得到 NaN
【发布时间】:2018-04-27 17:06:59
【问题描述】:

我需要打印从 Gross 输入框(第 3 个框)内的选项获得的计算,但我收到的是 NaN,而不是计算。

答案应根据以下函数返回总工资计算。

如果工作小时数小于等于 40,则计算将在 if 条件内进行,否则,将进行不同的计算。

function myFunction() {
  var hoursWorked;
  var hourlyRate;
  document.getElementById("hours").value = hoursWorked;
  document.getElementById("payrate").value = hourlyRate;
  if (hoursWorked <= 40) {
    var grossPay = parseInt((hoursWorked * hourlyRate)).toFixed(2);
    document.getElementById("gross").value = grossPay;
  } else {
    var grossPay = parseInt((40 * hourlyRate + 1.5 * hourlyRate * (hoursWorked - 40))).toFixed(2);
    document.getElementById("gross").value = grossPay;
  }

}
# Add A H1 Heading Of "Gross Pay Calculation"

<form>
  Hourly Rate:
  <select id="payrate" align="right">
    <script>
      for(var d=10;d<=60;d++) {
        document.write("<option>"+(d)+"</option>");
        d+=9;            
        document.getElementById("payrate").value;
      }
    </script>
  </select><br> Hours Worked:
  <select id="hours" align="right">
    <script>
      for(var d=10;d<=60;d++) {
        document.write("<option>"+d+"</option>");
        d+=4;
        document.getElementById("hours").value;
      }
    </script>
  </select><br>
</form>

Gross Pay: <input type="text" id="gross" align="right"><br><br>
<input type="submit" value="GrossPay" onclick="myFunction()">

【问题讨论】:

  • document.getElementById("hours").value = hoursWorked; document.getElementById("payrate").value = hourlyRate; 你认为这是在做什么?
  • 和提交按钮提交。

标签: javascript html nan


【解决方案1】:

您将输入分配给未初始化的变量,将其更改为此

hoursWorked=document.getElementById("hours").value;
hourlyRate=document.getElementById("payrate").value;

<!DOCTYPE html>
    <html>
    <head>
    <title>Page Title</title>

    <script>
     function myFunction()
     {
         var hoursWorked;
         var hourlyRate;
      //hoursWorked= 
      hoursWorked=document.getElementById("hours").value;
        hourlyRate=document.getElementById("payrate").value;
        if (hoursWorked <=40)
        {
           var grossPay=parseInt((hoursWorked*hourlyRate)).toFixed(2);
           document.getElementById("gross").value = grossPay;
        }
        else
        {
           var grossPay=parseInt((40*hourlyRate+1.5*hourlyRate*(hoursWorked-40))).toFixed(2);
           document.getElementById("gross").value = grossPay;
        }

     }
     </script>
    </head>
    <body>
     # Add A H1 Heading Of "Gross Pay Calculation"

    <form>
    Hourly Rate:  <select id="payrate" align="right">
                  <script>
                  for(var d=10;d<=60;d++)
                  {
                    document.write("<option>"+(d)+"</option>");
                    d+=9;

        document.getElementById("payrate").value;
                  }
                  </script>
                  </select><br>
     Hours Worked: <select id="hours" align="right">
                  <script>
                  for(var d=10;d<=60;d++)
                  {
                    document.write("<option>"+d+"</option>");
                    d+=4;
                    document.getElementById("hours").value;
                  }
                  </script>
                  </select><br>
     </form>    


    Gross Pay:  <input type="text" id="gross" align="right"><br><br>
    <input type="submit" value="GrossPay" onclick="myFunction()">


     </body>
     </html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-24
    • 2018-10-23
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2017-06-30
    相关资源
    最近更新 更多