0

我在控制台中收到以下错误:“Uncaught TypeError: undefined is not a function”

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

错误出现在 Total PayAmount 行的显示字符串中

有任何想法吗?

4

1 回答 1

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方法。

于 2014-11-17T08:04:25.250 回答