2013-10-23 36 views
0

我對這段代碼的使用非常困難。我一直在研究它幾天,似乎無法弄清楚。請幫忙!!查找送貨的JavaScript編碼總計

以下是我需要的代碼: 許多公司通常會爲購買收取運費和手續費。創建一個網頁,允許用戶在文本框中輸入購買價格,幷包含一個計算運輸和處理的JavaScript函數。爲腳本添加功能,對於任何小於或等於25美元的購買,最小運費和手續費爲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

你是否提醒()單獨的所有值,他們都看起來不錯?爲了將它與字符串連接分開,在加法的周圍加上一些括號。另外,也許可以在銷售計算中指定浮點數(例如,10.0/100.0而不是10/100 ...雖然JS可能在此處寬恕) – struthersneil

+0

您無法在警報中添加'salesPrice'和'shipping'。它認爲這是一個字符串。 – matthewpavkov

+0

你爲什麼稱你的函數爲「parseInt」? – mwhs

回答

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' 

參考文獻:

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

0

這裏是jsFiddle link

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