【发布时间】:2021-08-16 04:37:27
【问题描述】:
我现在正在制作 BMR 计算器,并且我已经想到了大部分内容。由于某种原因,这段代码不想用ifelse 给我正确的值。它只给了我一个条件,即使它是另一个条件(例如,如果是男性,则计算女性)。
var bmr = 0;
function calc() {
var age = document.getElementById("age").value;
var gender = document.getElementById("gender").value;
var height = document.getElementById("height").value;
var weight = document.getElementById("weigth").value;
if (gender == 'male') {
bmr = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
} else if (gender == 'female') {
bmr = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
}
}
document.getElementsByTagName("button")[0].addEventListener("click", function() {
calc();
document.getElementById('lblResult').innerHTML = bmr;
})
* {
box-sizing: border-box;
margin: 0;
}
body {
font-family: Verdana, Arial, sans-serif;
background-color: #19a4fa;
min-height: 100vh;
}
header {
color: rgb(255, 255, 255);
background-image: linear-gradient(to right, #0051ffee, #ff00d4);
background-repeat: no-repeat;
background-size: auto 100%;
padding: .5em 0 .5em 5.5em;
height: fit-content;
text-align: center;
}
#wrapper {
width: 980px;
margin-right: auto;
margin-left: auto;
}
#grad1 {
height: 100vh;
background-color: red;
/* For browsers that do not support gradients */
background-image: linear-gradient(155deg, #19a4fa, #a527f8);
}
#centre {
text-align: center;
}
<div id="grad1">
<div id="wrapper">
<header>
<h1>BMR Calculator</h1>
</header>
<br>
<h4><strong>What is BMR?:</strong></h4>
<p>Basal Metabolic Rate (BMR) is your metabolism rate. It calculates the total amount of calories you should be eating per day based on Age, Height, Weight, and Gender.</p>
<div id="centre">
<form action="#">
<label for="gender">Gender:</label><br>
<input type="radio" id="gender" name="gender" value="male" required="required"> Male
<input type="radio" id="gender" name="gender" value="female" required="required"> Female<br><br>
<label for="age">How old are you?</label><br>
<input type="number" id="age" value="age" required="required"><br><br>
<label for="height">What is your height in centimetres? (cm):</label><br>
<input type="number" id="height" value="height" required="required"><br><br>
<label for="gender">What is your wight in kilograms? (kg):</label><br>
<input type="number" id="weigth" value="weight" required="required"><br><br>
</form>
<button type="button" onclick="">
Result</button><br>
<textarea id="lblResult">BMR</textarea>
</div>
</div>
</div>
这困扰了我一段时间,非常感谢一些帮助。
【问题讨论】:
-
} else if {不正确。它应该只是} else {。但是,在您的情况下,切换语句会更合适 -
有趣的是,在 javascript 中 switch 语句的执行与 ifelse 差不多。他的 if else 也没有错,但你是正确的,因为 else 是合乎逻辑的选择,因为只有两种可能的选择。
-
我正在尝试添加更多内容,所以我认为最好添加一个带有嵌套 if 语句的开关,但现在它只会使用默认值,而不是其他条件时活跃
标签: javascript html css calculator