JavaScript中的简单代谢率计算

时间:2015-09-16 13:25:16

标签: javascript html

我已经写了一段代码

  1. 将'基础代谢率'与选项选择标签中的活动因子相乘并提供每日卡路里要求

  2. 将每日卡路里需求乘以0.8,使卡路里减少20%

  3. 当我在浏览器中运行脚本时,它会出现以下错误

      

    未捕获的TypeError:无法设置未定义的属性“值”

    我认为问题出在select-option标签上。我是js的新手,所以任何帮助都会非常感激

    HTML代码

    <form name="form2" method="post">
        <fieldset>
            <p>
                <label>Input your BMR here</label>
                <input name="a">
            </p>
            <p>
                <label>Select your activity level</label>
                <select name="b">
                    <option value="0.2" selected>No sport/exercise</option>
                    <option value="0.375" >Light activity (sport/exercise 1-3 times per week)</option>
                    <option value="0.55" >Moderate activity (sport/exercise 3-5 times per week)</option>
                    <option value="0.725" >High activity (everyday exercise)</option>
                    <option value="0.9" >Extreme activity (professional athlete)</option>
            </p>
            <input onclick=perc2() type=button value=Calculate>
            <p>
                <label>Your maintainence calories:</label>
                <input name="total1">
            </p>
            <p>
                <label>Calories required to lose weight</label>
                <input name="total2">
            </p>
            <input type=reset value=Reset>
        </fieldset>
    </form>
    

    的Javascript

    <SCRIPT>
    <!--
        function perc2() {
             a = document.form2.a.value;
             b = document.form2.b.value;
             c = a*b
             d = c*0.8
             e = Math.round(c, 1)
             f = Math.round(d, 1)
             document.form2.total1.value = e
             document.form2.total2.value = f 
        }
        //-->
    </SCRIPT>
    

1 个答案:

答案 0 :(得分:1)

在JavaScript中获取表单元素的正确方法是使用getElementById()

在此代码中例如:

      a = document.form2.a.value;

a未定义,因为您使用的是无效的获取值的方法。 相反,你应该使用:

a = document.getElementById("a").value;

编辑:同时在输入字段中添加ID