我正在创建一个简单的表单,根据订购数量和税金计算价格。我还想为以下数量申请折扣:
10-19:10%折扣
20-29:20%折扣
30-39:30%折扣
40-99:40%的折扣
我的问题是该功能仍然返回总价而没有特定数量的折扣。当输入的数量在一定范围内时,我已将其设置为折扣更新为适当的百分比(var discountPrice)。如果应用折扣,则总计应更新为discountedTotal,并从那里计算税额和最终总额。但是,我的语法似乎存在问题,因为当我运行它时,这些都不会应用于该函数。
任何关于为什么if / else语句或整个函数运行不正常的见解将不胜感激。如果需要,这里是完整的HTML / JS:http://jsfiddle.net/pas0tmpL/
function priceCalculation() {
var nameFirst = document.getElementById("first_name").value;
var nameLast = document.getElementById("last_name").value;
var phoneNum = document.getElementById("phone_number").value;
var quantity = document.getElementById("quantity_order").value;
var price = document.getElementById("price_fixed").value;
var total = quantity * price;
var discountPrice = 0
var discountedTotal = total - (total * discountPrice);
const taxRate = 0.085;
var tax = total * taxRate;
var totalPlusTax = total + tax;
if (quantity > 9 || quantity < 20) {
discountPrice = .10;
total = discountedTotal;
}
else if (quantity > 19 || quantity < 30) {
discountPrice = .20;
total = discountedTotal;
}
else if (quantity > 29 || quantity < 40) {
discountPrice = .30;
total = discountedTotal;
}
else if (quantity > 39 || quantity < 100) {
discountPrice = .40;
total = discountedTotal;
}
document.getElementById("order_total").value = "$" + totalPlusTax.toFixed(2);
答案 0 :(得分:0)
如果你想学习,你必须做好功课......但是......
你的代码上下运行..你必须这样做: discountedTotal =总计 - (总* discountPrice); 每次修改discountPrice变量.....
这里没有示例代码。
答案 1 :(得分:0)
像这样:
function priceCalculation() {
var nameFirst = document.getElementById("first_name").value;
var nameLast = document.getElementById("last_name").value;
var phoneNum = document.getElementById("phone_number").value;
var quantity = document.getElementById("quantity_order").value;
var price = document.getElementById("price_fixed").value;
var total = quantity * price;
var discountPrice = 0 ;
var discountedTotal = 0;
const taxRate = 0.085;
var tax = total * taxRate;
var totalPlusTax = total + tax;
if (quantity > 9 || quantity < 20) {
discountPrice = .10;
total = total - (total * discountPrice);
}
else if (quantity > 19 || quantity < 30) {
discountPrice = .20;
total = total - (total * discountPrice);
}
else if (quantity > 29 || quantity < 40) {
discountPrice = .30;
total = total - (total * discountPrice);
}
else if (quantity > 39 || quantity < 100) {
discountPrice = .40;
total = total - (total * discountPrice);
}
document.getElementById("order_total").value = "$" + totalPlusTax.toFixed(2);
} // end function priceCalculation();
答案 2 :(得分:0)
我可以看到几个问题。一个是,你使用
计算开头的discountedTotal
var discountPrice = 0
var discountedTotal = total - (total * discountPrice);
总计 - (总计* 0)只会给你total
。您应该只知道discountedTotal
是什么后才设置discountPrice
你的if语句也存在一些问题。作为提示,||
表示&#34;或&#34;。因此,你的第一个if是&#34;如果数量大于9或小于20&#34; - 并且存在的每个整数大于9或小于20(有些都是!)。因此,您只会尝试应用第一个折扣,并将其应用于所有内容。