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 に答える