J查询结果显示问题
Jquery result display issue
我正在尝试创建一个 bmi 计算器并尝试了以下操作。
$(document).ready(function() {
// Convert ft to inches
function convertHeight(ft) {
return ft * 12;
}
// calculate total height
function showbmi() {
var weight = document.getElementById('weight').value * 1;
var height_ft = document.getElementById('height_ft').value * 1;
var height_in = document.getElementById('height_in').value * 1;
var height = convertHeight(height_ft) + height_in;
var female_h = (height * height) / 30;
var male_h = (height * height) / 28;
var gender;
var x = document.getElementsByName("gender");
for (var i = 0; i < x.length; i++) {
if (x[i].checked == true) {
gender = x[i].value;
break;
}
}
var bmi = "?";
if (gender == "female") {
bmi = (Math.round((weight * 703) / (height * height)));
if (isNaN(bmi)) bmi = "?";
} else {
bmi = (Math.round((weight * 703) / (height * height)));
if (isNaN(bmi)) bmi = "?";
}
var bmi_msg = "?";
if (bmi < 15) {
bmi_msg = "Very severely underweight";
} else if (bmi <= 16) {
bmi_msg = "Severely underweight";
} else if (bmi <= 18.4) {
bmi_msg = "Underweight";
} else if (bmi <= 24.9) {
bmi_msg = "Normal";
} else if (bmi <= 29.9) {
bmi_msg = "Overweight";
} else if (bmi <= 34.9) {
bmi_msg = "Obese Class I (Moderately obese)";
} else if (bmi <= 39.9) {
bmi_msg = "Obese Class II (Severely obese)";
} else {
bmi_msg = "Obese Class III (Very severely obese)";
}
$("#result").text(bmi);
return bmi;
$("#comment").text(bmi_msg);
return bmi_msg;
}
//bmi infos
//finish
$("form#calc input").bind("keydown", function() {
setTimeout(function() {
showbmi();
}, 100);
return true;
});
$("form#calc input").bind("change", function() {
showbmi();
});
$("form#calc radio").bind("change", function() {
showbmi();
});
$("form#calc").bind("submit", function() {
showbmi();
return false;
});
});
bmi 显示正确,但消息 forbmi 值未显示。 我检查了控制台,它说代码无法访问。有人可以告诉我错在哪里,以及我如何改进这段代码。
在设置注释之前设置result
内容后,您有一个 return 语句,因此永远不会执行$("#comment").text(bmi_msg);
。
函数将在执行 return 语句后立即将控制权返回给调用方方法,因此执行流中应只有一个 return 语句。
因此,请从代码中删除return bmi;
以使注释设置正常工作
$(document).ready(function() {
// Convert ft to inches
function convertHeight(ft) {
return ft * 12;
}
// calculate total height
function showbmi() {
var weight = $('#weight').val() * 1;
var height_ft = $('#height_ft').val() * 1;
var height_in = $('#height_in').val() * 1;
var height = convertHeight(height_ft) + height_in;
var female_h = (height * height) / 30;
var male_h = (height * height) / 28;
var gender = $('input[name="gender"]:checked').val();
var bmi = "?";
if (gender == "female") {
bmi = (Math.round((weight * 703) / (height * height)));
if (isNaN(bmi)) bmi = "?";
} else {
bmi = (Math.round((weight * 703) / (height * height)));
if (isNaN(bmi)) bmi = "?";
}
var bmi_msg = "?";
if (bmi < 15) {
bmi_msg = "Very severely underweight";
} else if (bmi <= 16) {
bmi_msg = "Severely underweight";
} else if (bmi <= 18.4) {
bmi_msg = "Underweight";
} else if (bmi <= 24.9) {
bmi_msg = "Normal";
} else if (bmi <= 29.9) {
bmi_msg = "Overweight";
} else if (bmi <= 34.9) {
bmi_msg = "Obese Class I (Moderately obese)";
} else if (bmi <= 39.9) {
bmi_msg = "Obese Class II (Severely obese)";
} else {
bmi_msg = "Obese Class III (Very severely obese)";
}
$("#result").text(bmi);
$("#comment").text(bmi_msg);
return bmi;
}
//bmi infos
var timer;
$("#calc input").bind("keydown change", function() {
clearTimeout(timer);
timer = setTimeout(function() {
showbmi();
}, 100);
return true;
});
$("#calc").bind("submit", function() {
clearTimeout(timer);
showbmi();
return false;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="calc">
<input id="weight" />
<input id="height_ft" />
<input id="height_in" />
<br />
<input name="gender" type="radio" value="male" />
<input name="gender" type="radio" value="female" />
<br />
<input type="submit" value="Check" />
<div id="result"></div>
<div id="comment"></div>
</form>
注意:既然你使用的是jQuery,为什么不使用它的实用工具来获取/设置值/内容
相关文章:
- angular js密码强度显示问题
- JQuery上下文菜单显示/隐藏问题
- AngularJs基于角色的菜单显示安全问题
- ajax显示隐藏滚动到最重要的问题
- 如何解决youtube播放器没有显示全宽的问题&身高
- 在 AngularJS 中显示信息的标记存在问题
- 有问题的突出显示(悬停)一个系列,突出显示图表
- 挖空和显示模块模式的数据绑定问题
- 使用 jQuery UI 折叠面板显示 couchDB 数据库搜索结果时出现问题
- 问题 - 在查询加载器 2 加载页面之前显示 1 秒的页面
- 显示脸书好友个人资料图片时出现问题
- 搜索输入问题显示滚动
- HTML:密码字段中的HTML5占位符属性问题 - 显示正常文本
- AngularJS+simpleCart问题显示购物车内容,直到添加项目
- 问题显示twitter状态/user_timeline MVC3.Net
- 通过jQuery将某些问题显示在html表单上
- 有问题显示数据到html表使用ajax和php
- 随机问题显示下载链接
- Chrome和谷歌网页字体的问题.显示来自Firefox的不同输出
- Ext js网格问题显示日期在safari