我在使用此代码时非常困难。我已经工作了好几天,似乎无法搞清楚。请帮忙!!
以下是我需要的具体代码: 许多公司通常会收取运费和手续费。创建一个允许用户在文本框中输入购买价格的网页,其中包含一个计算运费和处理的JavaScript函数。为脚本添加功能,对于小于或等于$ 25.00的任何购买,增加1.50美元的最低运费和手续费。对于任何超过$ 25.00的订单,将运费和处理的总购买价格加10%,但不包括1.50美元的最低运费和手续费。计算百分比的公式是价格*百分比/ 100.例如,计算50.00美元购买价格10%的公式为50 * 10/100,这导致运费和手续费为5.00美元。确定订单的总成本(购买加运费和处理)后,将其显示在警告对话框中。
这是我的代码:
<!DOCTYPE>
<head>
<title>Calculate Shipping</title>
<script type="text/javascript">
function parseInt() {
var salesPrice = document.salesForm.Price.value;
var minCharge = salesPrice + 1.50;
var shipping = salesPrice * 10/100;
if (salesPrice <= 25)
window.alert('Your sales total including shipping is $' + minCharge);
else
window.alert('Your sales total including shipping is $' + salesPrice + shipping);
}
</script>
</head>
<body>
<form name="salesForm">
<div >
<p>Enter Your Purchase Price</p>
<input type="text" name="Price" /><br /><br />
<input type="button" name="Calculate" value="Calculate Shipping"
onclick="parseInt ()" />
</div>
</form>
</body>
</html>
除警报框中的数学外,一切都有效。它将显示不正确的总数......
答案 0 :(得分:2)
输入值始终以字符串形式返回,而不是数字;解决这个问题:
var salesPrice = parseFloat(document.salesForm.Price.value),
minCharge = salesPrice + 1.50,
shipping = salesPrice * 10/100;
问题是+
会将数字加在一起,或者连接字符串:
var num1 = 1,
num2 = 3,
num3 = '2';
console.log(num1 + num2); // 4
console.log(num2 + num3); // '32'
参考文献:
答案 1 :(得分:0)
它显示错误的值,因为它连接字符串而不是对值进行求和
你可以在提醒他们之前总结一下,比如
var salesAndShipping = salesPrice + shipping
window.alert('Your sales total including shipping is $' + salesPrice + shipping);
或者您可以简单地将表达式括起来,例如:
window.alert('Your sales total including shipping is $' + (salesPrice + shipping) );
哦,顺便说一句,我认为你通过打电话给你ParseInt
来覆盖原生功能
答案 2 :(得分:0)
function showAlert() {
var salesPrice = parseFloat(document.getElementById('Price').value);
var minCharge = salesPrice + 1.50;
var shipping = salesPrice * 10/100;
if (salesPrice <= 25)
window.alert('Your sales total including shipping is $' + minCharge);
else {
window.alert('Your sales total including shipping is $' + parseFloat(salesPrice + shipping));
}
}
此外,parseInt是javascript方法,因此如果您创建具有相同名称的方法,您将看到意外的行为。 Read more here