2017-04-13 161 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