2014-11-17 26 views
0

我收到了我的控制檯下列錯誤: 「遺漏的類型錯誤:未定義是不是一個函數」無法調用toFixed多項變量

<script> 
    //name : calculateResult()--> 

    function calculateResult() { 
     console.log("calculateResult() function called!"); 

     //1. Declare Variables--> 
     var hoursWorked, 
      jobCategory, 
      jobCategorySelectedIndex, 
      hoursEligibleForBasePay, 
      hoursEligibleForOvertime, 
      basePayAmount, 
      overtimePayAmount, 
      totalPayAmount, 
      overtimePayRate; 

     //2. Values for Local Variables--> 
     hoursWorked = document.getElementById("txthoursWorked").value; 
     console.log("hoursWorked = " + hoursWorked); 

     //Get Select element choice: Job Category--> 

     jobCategorySelectedIndex = document.getElementById("seljobCategory").selectedIndex; 
     console.log("jobCategorySelectedIndex = " + jobCategorySelectedIndex); 

     jobCategory = document.getElementById("seljobCategory").options[jobCategorySelectedIndex].value; 
     console.log("jobCategory = " + jobCategory); 

     //3. Do Calculations--> 
     hoursWorked = parseFloat(hoursWorked); 

     if (jobCategory == "M") { 
      basePayRate = "25"; 
     } else if (jobCategory == "R") { 
      basePayRate = "20"; 
     } else if (jobCategory == "S") { 
      basePayRate = "15"; 
     } 

     hoursEligibleForBasePay = 40; 
     basePayAmount = basePayRate * hoursEligibleForBasePay; 
     console.log("basePayAmount = " + basePayAmount); 
     console.log("hoursEligibleForOvertime =" + hoursEligibleForBasePay); 

     if (hoursWorked > 40) { 
      hoursEligibleForOvertime = hoursWorked - 40; 
     } else { 
      hoursEligibleForOvertime = 0; 
     } 
     console.log("hoursEligibleForOvertime = " + hoursEligibleForOvertime); 


     overtimePayRate = 1.5 * basePayRate; 
     overtimePayAmount = overtimePayRate * hoursEligibleForOvertime; 
     totalPayAmount = basePayRate + overtimePayAmount; 

     console.log("overtimePayRate = " + overtimePayRate); 
     console.log("overtimePayAmount = " + overtimePayAmount); 
     console.log("totalPayAmount = " + totalPayAmount); 

     //4. Display Results--> 
     displayString = "Base Pay " + "$" + basePayAmount.toFixed(2) + "<br />" + 
      "Overtime Pay &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + "$" + overtimePayAmount.toFixed(2) + "<br />" 
     "Total Pay &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + "$" + totalPayAmount.toFixed(2); 

     document.getElementById("divDisplay").innerHTML = displayString; 



    } 
</script> 

錯誤是總PayAmount線顯示字符串

有什麼想法?

+0

我認爲id不存在於您的DOM中。 –

回答

0

實際的錯誤實際上並不在該行上。

totalPayAmount這裏定義:

totalPayAmount = basePayRate + overtimePayAmount; 

basePayRate這裏定義:

if (jobCategory == "M") { 
    basePayRate = "25"; 
} else if (jobCategory == "R") { 
    basePayRate = "20"; 
} else if (jobCategory == "S") { 
    basePayRate = "15"; 
} 

所以basePayRate是一個字符串。然後totalPayAmount也是一個字符串,它不會有一個toFixed方法。