更改不同数量的单价

问题描述 投票:0回答:1

我有这个价格计算器,其中每件商品的价格是

2
。如果数量超过
1.8
,我需要价格为
1000
。另一种情况也可以视为折扣,例如数量大于
1000
,则折扣
10%

我尝试过使用

if
条件,但我不知道如何解决这个问题。

function calculate(price) {
  var qty = document.getElementById("qty").value || 0;
  qty = parseFloat(qty).toFixed(2);
  var result = parseFloat(qty * 2).toFixed(2);
  document.getElementById("result").value = result;

  if (result >= 1000) {
    result = result - 10%
  }
}
<form role="form" id="price" name="price">
  <p>
    <input type="text" id="qty" onchange="calculate(qty*2)" value="">
  </p>
  <p>
    <input type="text" id="result" value="" disabled>
  </p>
</form>

javascript html e-commerce discount
1个回答
0
投票

问题是因为

10%
不是有效术语。您需要以数学方式计算出百分比并将其从总数中删除,如下所示:

const itemPrice = 2;
const result = document.querySelector('#result');

document.querySelector('#qty').addEventListener('input', e => {
  const qty = parseInt(e.target.value, 10);
  const subtotal = itemPrice * qty;  
  const discount = qty > 1000 ? 0.1 : 0; // 0.1 here = 10%
  const total = subtotal - subtotal * discount;
  result.value = total.toFixed(2);
});
<form role="form" id="price" name="price">
  <p>
    <input type="text" id="qty" value="" />
  </p>
  <p>
    <input type="text" id="result" value="" disabled />
  </p>
</form>

请注意,此逻辑故意冗长,只是为了演示目的。如有必要,您可以使其更简洁。

© www.soinside.com 2019 - 2024. All rights reserved.