2016-12-07 71 views
0

我正在嘗試創建一個計算器來執行以下操作。使用Javascript運行混凝土立方體堆碼計算器

  • 接受長度,寬度和高度值。

  • 將寬度乘以12,因爲它需要轉換爲英尺。

  • 然後長度,寬度及高度相乘和通過 27.

  • 劃分即總應然後在文本框中顯示。然後我想保持這種狀態,但這是我遇到問題的地方。由於某種原因,它只能添加一次然後停止。

var wallTotal = 0; 
 

 
function addWall() { 
 
    var inHeight = document.getElementById("inHgt").value 
 
    var inWidth = document.getElementById("inWid").value 
 
    var inLength = document.getElementById("inLen").value 
 
    inWidth = inWidth/12 
 
    wallTotal = (parseFloat(inHeight * inWidth * inLength)/27); 
 
    document.getElementById("outWall").value = wallTotal; 
 
}
<h1>House</h1> 
 
<form id="form2" name="form2" method="post" action=""> 
 
    <p>Height: <input type="text" name="inHgt" id="inHgt" /></p> 
 
    <p>Width: <input type="text" name="inWid" id="inWid" /></p> 
 
    <p>Length: <input type="text" name="inLen" id="inLen" /></p> 
 
    <p>Cubic Yards of Concrete: <input type="text" name="outWall" id="outWall" /></p> 
 
</form> 
 
<p> 
 
    <input type="button" id="addIn" value="Add That Wall" onclick="addWall()" /> 
 
</p>

+0

你問不了的事,但爲什麼它只是一個需要的寬度轉換爲腳?不應該使用「英寸」或「英尺」標記字段,以便用戶知道要輸入什麼內容? (另外,你的意思是*除*,不是乘法。) – nnnnnn

+0

這裏你不需要'parseFloat',因爲乘法已經將字符串強制轉換爲數字。 – 4castle

+0

@ 4castle - 即使'*'不強制,'parseFloat()'在乘*之前需要用於單獨的值*,而不是結果。 – nnnnnn

回答

2

你的問題是要覆蓋每一個你addWall()函數運行時間wallTotal。你只需要添加到總量,而不是:

wallTotal += (parseFloat(inHeight*inWidth*inLength)/27); 

注意+=運營商,這是簡寫:

wallTotal = wallTotal + (parseFloat(inHeight*inWidth*inLength)/27); 
+0

是的!我一直在試圖弄清楚12個小時或更長時間你是一個救生員! – WordPressFreddie

+0

很高興聽到這個爲你解決它!如果丹尼爾銀行的答案爲你工作,你應該選擇它作爲正確的答案,所以他得到了一些聲譽,和其他人訪問的網頁沒有哪個解決方案爲你工作。快樂的編碼! –