2017-06-19 40 views
0

我似乎无法让我的功能正确.....这是一个学费计算器。此时住宿和学期无关紧要。这只是信用额度*信用成本,但它会一直返回NaN。功能不断返回NaN,学费计算器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="utf-8" /> 
     <title>Greendale Community College</title> 
    <script type="text/javascript"> 
     /* <![CDATA[ */ 
     /* ]]> */ 
     var numCredits = 0; 
     var creditCost = 302; 
     var instate = 0; 
     var outstate = 0; 
     var international = 0; 
     var tuitionCost = number; 
     function calcTuition(numCredits, creditCost) { 
      var tuitionCost = numCredits * creditCost; 
      document.write("Your tuition cost is $" + tuitionCost); 
     } 
    </script> 
    </head> 
    <body> 
     <p><center><font face="impact" font size="200" color="green">Greendale Community College</font></center></p> 
     <center><img src="greendale.jpg" alt="greendale" width="512" height="256"/></center> 
     <h1><center>Tuition Calculator</center></h1> 
     <form name="calculator" action="" method="get"> 
     <h2>Semester</h2> 
     <h3>(choose a semester)</h3> 
      <input type="radio" name="semesterFall"/> Fall 2018 <br /> 
      <input type="radio" name="semesterSpring"/> Spring 2018 <br /> 
      <input type="radio" name="semesterSummer"/> Summer 2018 <br /> 
     <h2>Residency</h2> 
     <h3>(choose your residency)</h3> 
      <input type="radio" name="instate" /> In-State <br /> 
      <input type="radio" name="outstate" /> Out-of-State <br /> 
      <input type="radio" name="international" /> International <br /> 
     <h2>Credits</h2> 
     <h3>(enter your number of credits)</h3> 
      <input type="text" name="numCredits" size="2" onchange="calcTuition(numCredits, creditCost)"/> Credits <br /> 
      <input type="button" name="tuition" onclick="window.alert(calcTuition(numCredits, creditCost))" value="Calculate your Tuition" /> 
      </form> 
    </body> 
</html> 
+0

至少有一个操作数不是数字。 – zerkms

+0

您正试图在输入学分时进行计算,但学费尚未输入。为了完成这个功能,你需要两个值,所以不要在调用'calcTuition'之前先调用它们。 –

+0

我对此很新,所以你的意思是?不要从哪里打电话? –

回答

0

我看了一下这是怎么回事,它看起来像你想打电话numCredits当它是不是有效的数字。它的确切类型是$[object HTMLInputElement]。 HTMLInputElement和Integer之间的添加是未定义的行为,因此您获得的值是NaN。

一种可能的解决方案是使用document.getElementbyId方法返回实际元素,然后您可以对它们执行任何操作。 PS:你应该尝试和调试你自己的函数,你提到你是新手,但是设置一些打印语句或使用交互式调试器准确地查看问题出现的位置会很棒。这样您就可以排除故障并同时了解问题。

+0

我正在使用Microsoft Visual Studio,我该如何调试? –

+0

这应该可能是一个不同的问题,但在提问之前先进行研究。 – PSub

0
<script type="text/javascript"> 
    var c_amount = 302; 
    function calcu_Tuition(Credits, c_amount) { 
    //var Credits 
    var Credits = document.getElementById("Credits").value //it will get the value of Credits text box and be transfer to Credits variable. 

    var tuition = 0; 
     var tuition = Credits * c_amount; 
     document.write("Your tuition cost is $" + tuition); 
    } 

</script> 

<body> 
    <h2>Credits</h2> 
    <h3>(enter your number of credits)</h3> 
     <input type="text" id="Credits" size="2" onchange="calcu_Tuition(Credits, c_amount)"/> Credits <br> 
     <button id="tuition" onclick="calcu_Tuition(c_amount)">Calculate your Tuition"</button> 
     </form> 
</body> 
+0

不要只是发布代码,解释你改变了什么,为什么。我不清楚你想说什么。 – Clonkex