0

私はこのコードで非常に苦労しています。私は何日もそれに取り組んできましたが、それを理解できないようです。助けてください!!

コードに必要な詳細は次のとおりです。通常、多くの企業は、購入に対して配送料と手数料を請求します。ユーザーが購入価格をテキスト ボックスに入力できる Web ページを作成し、送料と手数料を計算する 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>

アラート ボックスの計算以外はすべて機能します。間違った合計が表示されます...

4

3 に答える 3

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'

参考文献:

于 2013-10-23T21:51:22.327 に答える
0

ここにjsFiddleリンクがあります

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 メソッドであるため、同じ名前のメソッドを作成すると予期しない動作が発生します。詳細はこちら

于 2013-10-23T22:02:16.520 に答える