JavaScript空值错误

JavaScript空值错误,javascript,null,Javascript,Null,我用Javascript创建了这个简单的应用程序,但是我一直收到一个错误,上面写着“uncaughttypeerror:cannotreadproperty'value'为null”,这发生在“var age=document.getElementById(“age”).value;”行上。我一直在到处寻找这个问题,但我就是看不到它。请检查我的代码并帮助我。谢谢 <script> function calculateBMR() { var ge

我用Javascript创建了这个简单的应用程序,但是我一直收到一个错误,上面写着“
uncaughttypeerror:cannotreadproperty'value'为null
”,这发生在“
var age=document.getElementById(“age”).value;
”行上。我一直在到处寻找这个问题,但我就是看不到它。请检查我的代码并帮助我。谢谢

<script>
        function calculateBMR()
    {
        var gender = document.getElementById("gender").value;
        var age = document.getElementById("age").value;
        var weigth = document.getElementById("weight").value;
        var heigth = document.getElementById("height").value;
        console.log(gender);
        if (gender == "male")
        {
            var result = 66 + ( 6.23 * weight) + ( 12.7 * height ) - ( 6.8 *age );

        }
        else if (gender == "female")
        {
            var result = 655 + ( 4.35 * weight ) + ( 4.7 * height ) - ( 4.7 * age );
        }
        document.bmrForm.bmr.value = result;
    };
    </script>
    <form name = "bmrForm">
        Gender:
            <br />
        <select id="gender">
        <option value="male">male</option>
        <option value="female">female</option>
        </select>
            <br />
        Age:
            <br />
        <input type = "text" name ="age" size = "10">
            <br />
        Weigth (lb.) :
            <br />
        <input type = "text" name ="weight" size = "10">
            <br />
        Heigth (inches) :
            <br />
        <input type = "text" name = "height" size = "10">
            <br />
            <br />
        <input type = "button" value = "Calculate BMR" onClick = "calculateBMR();">
            <br />
            <br />
          BMR:
            <br />
        <input type = "text" name = "bmr">
    </form>

函数calculateBMR()
{
var-gender=document.getElementById(“性别”).value;
var age=document.getElementById(“age”).value;
var weigth=document.getElementById(“权重”).value;
var heigth=document.getElementById(“高度”).value;
console.log(性别);
如果(性别=“男性”)
{
var结果=66+(6.23*体重)+(12.7*身高)-(6.8*年龄);
}
否则,如果(性别=“女性”)
{
var结果=655+(4.35*体重)+(4.7*身高)-(4.7*年龄);
}
document.bmrForm.bmr.value=结果;
};
性别:

男性的 女性的
年龄:

重量(磅):

高度(英寸):




BMR:

您正在查找ID为
age
height
weight
的元素,但没有具有这些ID的HTML元素

试着这样使用它们:

<input type = "text" name ="age" size = "10" id="age">
<input type = "text" name ="weight" size = "10" id="weight">
<input type = "text" name ="height" size = "10" id="height">

年龄
体重
身高
页面上找不到ID,我不明白为什么这是公认的答案,因为它无法识别拼写错误(“身高”与“身高”),这会导致程序无法运行,也没有指出你不能直接用
.value
的结果做数值运算(因为它是一个字符串)。@torazaburo谢谢你纠正我的答案。但是,Mike只在字符串上使用
*
,只要用户输入是有效的数字,就可以了。我将相应地编辑我的答案
var ageElement = document.getElementById('age');

if (ageElement != undefined)
    age = Number(ageElement.value);

if (Number.isNaN(age))
    // Do your calculations.