2017-04-13 160 views
0

這是我的學期論文的開始。 什麼是錯,爲什麼? 如果你要改變一些東西,請保持簡單。簡單的BMR計算器HTML JavaScript

忽略這一點: 「我需要添加更多的文本,因爲: 它看起來像你的文章大多是代碼,請添加更多的細節。」 那麼我的計算器不顯示結果...

<!DOCTYPE html> 
 

 
<html> 
 

 
<head> 
 

 
<script> 
 

 
var bmr; 
 
var age = document.getElementById("age").value; 
 
var gender = document.getElementById("gender").value; 
 
var height = document.getElementById("height").value; 
 
var weigth = document.getElementById("weigth").value; 
 

 
if (gender == "masc") { 
 
bmr = 66.5 + (13.75 * weigth) + (5.003 * height) – (6.755 * age) 
 
} 
 
else { 
 
bmr = 655.1 + (9.563 * weigth) + (1.850 * height) – (4.676 * age) 
 
} 
 

 
</script> 
 

 
</head> 
 

 
<body> 
 

 
<form action="#"> 
 
    <input type="radio" id="gender" value="masc" checked> Male<br> 
 
    <input type="radio" id="gender" value="fem"> Female<br> 
 
    Age:<br> 
 
    <input type="number" id="age" value="20"><br> 
 
    Height:<br> 
 
    <input type="number" id="height" value="180"><br> 
 
    Weight:<br> 
 
    <input type="number" id="weigth" value="80"><br> 
 
</form> 
 

 
<button type="button" 
 
onclick="document.getElementById('lblResult').innerHTML = bmr"> 
 
Result</button> 
 

 
<p id="lblResult">BMR</p> 
 

 
</body> 
 

 
</html>

+0

它看起來像' - (6.755 * age)'和' - (4.676 * age)'中使用的'-'字符不是負號,它們是某種其他類型的短劃線字符,所以這就是爲什麼會出現「Invalid ... token」錯誤 - 請刪除這些錯誤並使用鍵盤上的「-'鍵重新輸入。我正在投票結束,因爲這是由於簡單的印刷錯誤造成的。 – nnnnnn

+0

(PS * * next *問題是你在''腳本中調用'document.getElementById()',它在*瀏覽器解析了你的元素之前運行*,但是你真的需要把它放在裏面一個函數,您可以從按鈕單擊事件中調用,以便計算使用當前輸入的值。) – nnnnnn

+0

謝謝nnnnnn和Antonio。 –

回答

0

像評論中提及你有一個破折號,而不是在你的代碼防止它的工作有一個減號。

bmr = 66.5 + (13.75 * weigth) + (5.003 * height) here-> - (6.755 * age)

您也將有當您選擇他們沒有加載,從而忽略了最低工作的元素到腳本移動到HTML文件的末尾,在結束</body>標籤在東陽代碼之前。

並且onclick事件不會按照您的意圖工作,如果您在腳本中創建事件,它會更好。

document.getElementsByTagName("button")[0].addEventListener("click", 
function() { 
    calc(); 
    document.getElementById('lblResult').innerHTML = bmr; 

}) 

也移動前人的精力計算代碼的函數裏面,所以你可以重新計算的值,因爲它代表只要你點擊導致你將得到相同的值。

這是一個工作Example