1

问题是:许多公司通常会收取购买的运费和手续费。创建一个允许用户在文本框中输入购买价格的网页 - 包括一个计算运输和处理的 JavaScript 函数。向脚本添加功能,为任何小于或等于 25.00 美元的购买添加 1.50 美元的最低运费和手续费。对于任何超过 25.00 美元的订单,在总购买价格中增加 10% 的运费和手续费,但不包括 1.50 美元的最低运费和手续费。确定订单的总成本(购买加上运输和处理)后,将其显示在警报对话框中。

我是 JavaScript 的初学者,正在努力让我的代码正常工作。它确实会显示一个带有用户输入值的警报框,但不会添加任何内容。虽然,我不知道为什么公式不起作用。请帮忙。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Calculating Shipping & Handling</title>
<script type="text/javascript">

/* <![CDATA[ */

    var price=[];
    var shipping=[];
    var total=price+shipping;

    function calculateShipping(){
    if (price <= 25){
    shipping = (price + 1.5);
    }
    else {
    shipping = (price * 10 / 100);
    }


window.alert("The purchase price with shipping is "
            + document.calculate.ent.value);
}
/* ]]> */
</script>
</head>
<body>
<form name ="calculate" action="" >
<p>Enter Purchase Price</p>
<input type="text" name="ent" >
<input type="button" name="button" value="Submit" onClick="calculateShipping()" />
</form>

</body>
</html>
4

2 回答 2

3

这显然是功课,所以我会让你走上正轨。

代码有几个问题:

  1. 该行var total=price+shipping;发生在您实际计算运费之前
  2. 而不是document.calculate.ent.value您实际上想要显示total.
  3. 您尚未将用户在文本框中输入的值分配给price变量。您可能会考虑简单地将价格作为参数传递给 calculateShipping()函数,这样就可以了function calculateShipping(price) { ... }
于 2012-12-04T00:48:29.220 回答
2
Try:


function calculateShipping() {
    var price = parseFloat(document.getElementById('ent').value);
    var total = (price <=25) ? price + 1.5 : 1.1 * price;
    window.alert("The purchase price with shipping is $" + total.toFixed(2));
}

您还应该在输入中添加一些验证,因为如果输入了非数字值,它将使您的函数崩溃。

于 2012-12-04T02:08:30.703 回答