2017-06-30 8 views
-1

Dies ist mein erster Riss bei der Verwendung von Arrays. Ich muss ein Array erstellen, das Kreditpreise für den Studententyp (in-state, out-of-state und international) speichert, und ein anderes, das Studiengebühren für Vollzeit-, Teilzeit- und überlastete Zeitpläne speichert.Funktion mit Array. Warum ist Variable undefiniert?

Ich habe Probleme beim Erstellen der Funktion. Ich dachte, ich hätte einen guten Überblick darüber, aber meine calcCost-Variable wird als undefiniert angezeigt. Jeder Rat wird geschätzt.

<!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"> 
<!--Document Head--> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <!--Title Element--> 
     <title>Greendale Community College</title> 
     <!--Style Element--> 
     <style type="text/css"> 
     body { 
      background-color: white; 
     } 
     h1 { 
      text-align: center; 
      font-family: Impact; 
      color: green; 
     } 

    p { 
     font-size: 36px; 
     color: green; 
    } 
    </style> 
<!--Script Element--> 
<script type="text/javascript"> 
    /* <![CDATA[ */ 
    /* ]]> */ 
    // Created function to calculate tuition cost 
    var creditCostArray = new Array(3); 
    creditCost[0] = 302.00; 
    creditCost[1] = 452.00; 
    creditCost[2] = 588.00; 

    var tuitionCostArray = new Array(3); 
    tuitionCost[0] = 3619.00; 
    tuitionCost[1] = 5429.00; 
    tuitionCost[2] = 7057.00; 

    function calcTuition(studentRes) { 
     var creditTotal = document.getElementsByName("numCredits")[0].value; 
     console.log(creditTotal); 
     if (studentRes == "i") 
      if (creditTotal < 12) 
       calcCost = creditCost[0] * parseInt(creditTotal); 
     tuitionTotal = "Student is an Part-Time, In-State Residency taking " + creditTotal + "Credits, Tuition Total is " + calcCost; 
     return tuitionTotal; 
    } 

</script> 
</head> 
<!--Body Element--> 
<body> 
    <!--Heading Element--> 
    <h1>Greendale Community College</h1> 
    <center><img src="greendale.jpg" alt="greendale" width="512" height="256"/></center> 
    <h2 align="center">Tuition Calculator</h2> 
    <!--Form--> 
    <form name="tuitionCalculator" action="" method="get"> 
    <h2>Semester</h2> 
    <h3>(choose a semester)</h3> 
     <!--Radio Buttons to Choose Semester--> 
     <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> 
     <!--Radio Buttons to Choose Residency--> 
     <input type="radio" name="residency" value="i" onclick="calcTuition('i')"/> In-State <br /> 
     <input type="radio" name="residency" value="o" onclick="calcTuition('o')" /> Out-of-State <br /> 
     <input type="radio" name="residency" value="x" onclick="calcTuition('x')"/> International <br /> 
    <h2>Credits</h2> 
    <h3>(enter your number of credits)</h3> 
     <!--Text Box--> 
     <input type="text" size="2" maxlength="2" name="numCredits" /><br /> 
     <!--Button to Calculate Tuition--> 
     <input type="button" onclick="window.alert(calcTuition())" value="Calculate Your Tuition" /> 
     </form> 
</body> 
</html> 
+0

Wo haben erklären Sie calcCost? –

+0

1. 'creditCost' ist nicht definiert. 2. 'tuitionCost' ist nicht definiert. –

+0

Wie ich Ihre vorherige Frage kommentiert habe, müssen Radio-Buttons gruppiert werden, indem Sie jedem in der Gruppe den gleichen Namen geben. Ist dies nicht der Fall, kann der Benutzer jeden Radiobutton (in diesem Fall Herbst, Frühling und Sommer) auswählen und kann sie nicht abwählen. Die zweite Gruppe in Ihrer Quelle ist in Ordnung. –

Antwort

1

Wenn Sie window.alert(calcTuition()) nennen, bekommt calcTuition keine Parameter, so dass Ihre studentRes Variable ist nicht definiert, auf einen nicht definierten Kosten führt.

0

Es gibt ein paar Fehler im Code

1.- Sie erstellen ein creditCostArray aber Sie dann Werte zuordnen zu einem völlig anderen Objekt creditCost und das gleiche gilt für die tuitionCostArray

// Created function to calculate tuition cost 
var creditCostArray = new Array(3); 
creditCost[0] = 302.00; 
creditCost[1] = 452.00; 
creditCost[2] = 588.00; 

2 .- function calcTuition(studentRes) benötigt einen Parameter und Sie rufen es ohne den Parameter window.alert(calcTuition())

3.- Erklären Sie calcCost vor yo ur Bedingungen, wenn auf diese Weise nicht die undefinierte

Arbeits Code wie folgt aussehen bekommt ...

<script type="text/javascript"> 
    /* <![CDATA[ */ 
    /* ]]> */ 
    // Created function to calculate tuition cost 
    var creditCost = new Array(3); 
    creditCost[0] = 302.00; 
    creditCost[1] = 452.00; 
    creditCost[2] = 588.00; 

    var tuitionCost = new Array(3); 
    tuitionCost[0] = 3619.00; 
    tuitionCost[1] = 5429.00; 
    tuitionCost[2] = 7057.00; 

    function calcTuition(studentRes) { 
     var creditTotal = document.getElementsByName("numCredits")[0].value | 0; 
     var calcCost = 0; 
     console.log(creditTotal); 
     if (studentRes == "i") 
      if (creditTotal < 12) 
       calcCost = creditCost[0] * parseInt(creditTotal); 
     tuitionTotal = "Student is an Part-Time, In-State Residency taking " + creditTotal + "Credits, Tuition Total is " + calcCost; 
     return tuitionTotal; 
    } 

</script> 
</head> 
<!--Body Element--> 
<body> 
    <!--Heading Element--> 
    <h1>Greendale Community College</h1> 
    <center><img src="greendale.jpg" alt="greendale" width="512" height="256"/></center> 
    <h2 align="center">Tuition Calculator</h2> 
    <!--Form--> 
    <form name="tuitionCalculator" action="" method="get"> 
    <h2>Semester</h2> 
    <h3>(choose a semester)</h3> 
     <!--Radio Buttons to Choose Semester--> 
     <input type="radio" id="semesterFall" name="semester" /> Fall 2018 <br /> 
     <input type="radio" id="semesterSpring" name="semester" /> Spring 2018 <br /> 
     <input type="radio" id="semesterSummer" name="semester" /> Summer 2018 <br /> 
    <h2>Residency</h2> 
    <h3>(choose your residency)</h3> 
     <!--Radio Buttons to Choose Residency--> 
     <input type="radio" name="residency" value="i" onclick="calcTuition('i')"/> In-State <br /> 
     <input type="radio" name="residency" value="o" onclick="calcTuition('o')" /> Out-of-State <br /> 
     <input type="radio" name="residency" value="x" onclick="calcTuition('x')"/> International <br /> 
    <h2>Credits</h2> 
    <h3>(enter your number of credits)</h3> 
     <!--Text Box--> 
     <input type="text" size="2" maxlength="2" name="numCredits" /><br /> 
     <!--Button to Calculate Tuition--> 
     <input type="button" onclick="window.alert(calcTuition('i'))" value="Calculate Your Tuition" /> 
     </form> 
</body> 
</html> 
+0

Ich schätze den Rat, aber dieser Code wurde nicht ausgeführt –

Verwandte Themen