0

JavaScript コードは次のとおりです。pickUptime が 20 未満であっても、nightSurcharges が合計費用に追加されるコードにエラーがあります。

function TaxiFare() {

    var baseFare = 2;
    var costPerMile = 0.50;
    var nightSurcharge = 0.50; // 8pm to 6am, every night //its flat 0.50 and not per mile
    var milesTravelled = Number(document.getElementById("miles").value) || 0;
    if ((milesTravelled < 1) || (milesTravelled > 200)) {
        alert("You must enter 1 - 200 miles");
        document.getElementById("miles").focus();
        return false;
    }

    var pickupTime = Number(document.getElementById("putime").value) || 0;
    if ((pickupTime == "") || (pickupTime < 0) || (pickupTime > 23)) {
        alert("The time must be 0-23 hours");
        document.getElementById("putime").focus();
        return false;
    }

    var cost = baseFare + (costPerMile * milesTravelled);

    // add the nightSurcharge to the cost if it is after
    // 8pm or before 6am
    if (pickupTime >= 20 || pickupTime < 6) {
        cost += nightSurcharge;
    }
    alert("Your taxi fare is $" + cost.toFixed(2));
}

pickupTime が >=20 の場合にのみ nightSurcharge を追加したいのですが、現在は機能していません。どんな助けでも大歓迎です。ありがとう

4

2 に答える 2

1

これは私には明らかです。

if (pickupTime >= 20 || pickupTime < 6) {
    cost += nightSurcharge;
}

このコードは、20 以上、または 6 未満の場合nightSurchargeにコストに加算されます。もちろん、6 未満の場合は加算されます。pickupTime

if (pickupTime >= 20) {
    cost += nightSurcharge;
}

これで、20 以上の場合にのみ追加されます。

于 2012-04-17T15:25:02.883 に答える
0

あなたのコードは次のとおりです。

if (pickupTime >= 20 || pickupTime < 6)

したがって、pickupTime が 6 未満の場合は、if にも入ります

http://jsfiddle.net/7rdzC/

于 2012-04-17T15:25:00.240 に答える