目前正在进行BMR计算器练习,但我似乎无法使该功能正常工作。如果选中男性单选按钮,则尝试使用男性bmr公式,但不会出现警告。
<script>
if(gender==male){
function bmr(weight, height, age) {
var malebmr = (66 + (13.7 * weight) + (5 * height) - (6.8 * age));
return malebmr;
}
else {
function bmr(weight, height, age) {
var femalebmr = (655 + (9.5 * weight) + (1.8 * height) - (4.7 * age));
return femalebmr;
}
}
}
function calculatebmr() {
alert(bmr(parseFloat(document.bmiform.weight.value),
parseFloat(document.bmiform.height.value),
parseFloat(document.bmiform.age.value)));
}
</script>
<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Gender</legend>
<label for="male">Male</label>
<input type="radio" name="gender" value="male" id="male" checked>
<label for="female">Female</label>
<input type="radio" name="gender" value="female" id="female">
</fieldset>
<input type="button" value="Calculate"
onclick="calculatebmr()">
答案 0 :(得分:0)
代码存在许多问题,因此我建议您阅读有关javascript的一些教程。此外,您显示的代码不包含bmiform
,但我认为该表单位于您的代码中。
您的括号不匹配。 (感谢Domysee)
您不需要有两个bmr()
功能。您必须只测试功能中选择性别的。 (感谢mplungjan)
您不能仅仅因为以下两个原因来测试if (gender==male)
:
您必须使用:
if (document.getElementById("male").checked) {
记住我在问题2中所说的内容
(谢谢mplungjan)
如果您尝试在上述说明的帮助下自行完成工作,我认为您将学到很多东西。但是如果你只是想要一个有效的代码,那就去吧。
您当前的代码有效, 如果您的
bmiform
包含输入weight
,height
和age
。
function bmr(weight, height, age) {
if (document.getElementById("male").checked) {
return (66 + (13.7 * weight) + (5 * height) - (6.8 * age)); /* Male */
}
else {
return (655 + (9.5 * weight) + (1.8 * height) - (4.7 * age)); /* Female */
}
}
function calculatebmr() {
alert(bmr(parseFloat(document.bmiform.weight.value),
parseFloat(document.bmiform.height.value),
parseFloat(document.bmiform.age.value)));
}
HTML5中是否允许使用
document.bmiform.weight.value
或者我们必须使用
document.getElementById('weight').value
或其他什么?
聚苯乙烯。对不起我的英语,我来自芬兰:)