【发布时间】:2016-04-23 01:29:24
【问题描述】:
我正在尝试第一次尝试使用 Javascript 获取用户输入,然后更改元素的 html 以输出一个值。这是一个卡路里计算器。这是我的 HTML、我的 javascript,以及我认为在我有限的知识下应该发生的事情的解释:
<center>
<p>Fill out the form below.</p>
<input type="radio" name="female" value="665.09" oninput="calsPerDay" ><p>Female</p>
<input type="radio" name="male" value="66.47" oninput="calsPerDay" ><p>Male</p>
<input id="age" type="number" oninput="calsPerDay"><p>Age</p><br>
<input id="height" type="number" oninput="calsPerDay"><p> Height- In Inches (12 inches=1 foot)</p>
<input id="weight" type="number" oninput="calsPerDay"><p> Weight (in pounds)</p><br>
</center>
<p id="totalCals"> </p> <p>kcal per day</p>
function calsPerDay() {
var age=document.getElementById("age").value;
var height=document.getElementById("height").value;
var weight=document.getElementById("weight").value;
var female=document.getElementsByName("female").value;
var male=document.getElementsByName("male").value;
if (document.getElementsByName("male").checked) {
var maleCals = male+ (13.75 * weight/2.2) + (5.0 * (height * 2.54) - (6.75 x age);
document.getElementById("totalCals").innerHTML = maleCals;
} else (document.getElementsByName("female").checked) {
var femaleCals = female + (9.56 * weight/2.2) + (1.84 * (height * 2.54) - (4.67 x age);
document.getElementById("totalCals").innerHTML = femaleCals;
}
}
我期望发生的是该函数将首先检查用户是否勾选了男性或女性。然后,如果他们检查男性,它会创建一个新变量(不确定这是否是执行此操作的最佳方式0,它添加男性(因为我把 var male = document.getElementsByName("male").value 和它的一个无线电类型输入,我读到它会读取你输入的值,所以我假设变量maleCals中的“男性”会变成那个值,66.47。然后我假设身高和体重将被读取为任何数字用户输入输入表单,然后作为<p> 元素的段落吐出,id 为totalCals。
这是一个 JS 小提琴:https://jsfiddle.net/oafu54x3/
我的困境是它根本不起作用,当您输入值时,<p> 标记中没有写入任何内容。
任何建议都会有所帮助。
【问题讨论】:
-
那么你应该改变你的方法,而不是定义新的变量,使用每个性别的系数。我也在下面发送答案。
-
好的,我会看看如何使用系数。谢谢!
标签: javascript html forms input innerhtml