功能不断返回NaN,学费计算器

时间:2017-06-19 02:00:58

标签: javascript function 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>

2 个答案:

答案 0 :(得分:0)

我看了一下发生了什么,看起来当你的numCredits号码不是有效号码时,你正试图打电话给$[object HTMLInputElement]。它的确切类型是document.getElementbyId。 HTMLInputElement和Integer之间的添加是未定义的行为,因此您获得的值是NaN。

一种可能的解决方案是使用#if方法返回实际元素,然后您可以对它们执行任何操作。

PS:你应该尝试调试你自己的功能,你提到你是新手,但是设置一些打印语句或使用交互式调试器来查看问题的确切位置会很棒。通过这种方式,您可以对其进行故障排除并同时了解问题。

答案 1 :(得分: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>