2017-06-19 12 views
0

Ich kann nicht scheinen, meine Funktion richtig zu bekommen ..... Es ist ein Unterricht Rechner. An dieser Stelle sind die Residenzen und Semester nicht wichtig. Es sind nur Credits * Kreditkosten, aber es bringt immer NaN zurück.Funktion hält immer NaN, Nachhilfe Rechner

<!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

Mindestens einer der Operanden ist keine Zahl. – zerkms

+0

Sie versuchen, die Berechnung durchzuführen, wenn die Credits eingegeben, aber der Unterricht noch nicht eingegeben wurde. Sie benötigen beide Werte, um die Funktion auszuführen, also rufen Sie 'calcTuition' nicht auf, bis Sie beide haben. –

+0

Ich bin ziemlich neu, also, wo meinst du das? Ruf nicht von wo? –

Antwort

0

nahm ich einen Blick auf, was los ist und es sieht aus wie Sie versuchen, numCredits zu rufen, wenn es keine gültige Zahl ist. Der genaue Typ ist $[object HTMLInputElement]. Die Addition zwischen einem HTMLInputElement und Integer ist ein nicht definiertes Verhalten und daher ist der Wert, den Sie erhalten, NaN.

Eine mögliche Lösung besteht darin, die Methode document.getElementbyId zu verwenden, um das tatsächliche Element zurückzugeben, und dann können Sie alle Vorgänge an ihnen ausführen.

PS: Sie sollten versuchen, Ihre eigenen Funktionen zu debuggen, Sie erwähnt, Sie sind neu, aber es wäre toll, einige print-Anweisungen einzurichten oder einen interaktiven Debugger zu verwenden, um genau zu sehen, wo das Problem auftritt. Auf diese Weise können Sie Fehler beheben und das Problem gleichzeitig verstehen.

+0

Ich verwende Microsoft Visual Studio, wie kann ich debuggen? –

+0

Dies sollte wahrscheinlich eine andere Frage sein, aber machen Sie Ihre Forschung zuerst, bevor Sie fragen. – 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

Schreiben Sie nicht nur Code, erklären Sie, was Sie geändert haben und warum. Mir ist nicht klar, was du sagen willst. – Clonkex