Javascript JS状态未按预期工作

Javascript JS状态未按预期工作,javascript,html,Javascript,Html,对于不同的性别,基础代谢率应该有不同的值。我的计算器显示男性的结果,无论选择男性还是女性单选按钮 男性BMR计算BMR=66.5+(13.75×体重单位kg)+(5.003×身高单位cm)–(6.755×年龄单位年) 女性BMR计算BMR=655.1+(9.563×体重单位kg)+(1.850×身高单位cm)–(4.676×年龄单位年) var-bmr; 函数funcalc(){ var age=document.getElementById(“age”).value; var-gender

对于不同的性别,基础代谢率应该有不同的值。我的计算器显示男性的结果,无论选择男性还是女性单选按钮

男性BMR计算BMR=66.5+(13.75×体重单位kg)+(5.003×身高单位cm)–(6.755×年龄单位年) 女性BMR计算BMR=655.1+(9.563×体重单位kg)+(1.850×身高单位cm)–(4.676×年龄单位年)


var-bmr;
函数funcalc(){
var age=document.getElementById(“age”).value;
var-gender=document.getElementById(“性别”).value;
var height=document.getElementById(“height”).value;
var weigth=document.getElementById(“weigth”).value;
如果(性别=“masc”){
bmr=66.5+(13.75*体重)+(5.003*身高)-(6.755*年龄)
}否则{
bmr=655.1+(9.563*体重)+(1.850*身高)-(4.676*年龄)
}
document.getElementById(“lblResult”).innerHTML=bmr;
}
男性
女性
年龄:

高度:

重量:

结果

BMR


每个文档上的
id
属性值必须是唯一的。所以你的HTML是无效的。相反,您可以使用获取元素并检查每个元素的值

let elements = document.getElementsByName('gender');
let isMale = elements[0].value === 'masc' || elements[1].value === 'masc';

您有两个ID为
性别的元素。一个页面上应该只有一个ID。你总是会得到第一个。因为只有两个,所以你可以读取它的
。checked
属性而不是它的值。如果
true
,则您知道它是
masc
,否则
fem
。否则,使用
.querySelector
获取选中的<代码>变量性别=文档。查询选择器(“输入[名称=性别]:已选中”)。值