Using JS to show HTML output of calculation(用JS显示计算的Html输出)
本文介绍了用JS显示计算的Html输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用HTML和JS构建一个卡路里计算器,目前正在努力在屏幕上(或通过console.log)显示输出。我知道我正在做一些非常基本、非常错误的事情,但目前无法确定是什么。
下面是我的HTML和JS代码: 数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
document.getElementById("bmrForm").addEventListener("submit", calcBMR);
function calcBMR(gender, weightKG, heightCM, age) {
// Calculate BMR
if (gender = 'male') {
let BMR = 10 * weightKG + 6.25 * heightCM - 5 * age + 5;
} else {
let BMR = 10 * weightKG + 6.25 * heightCM - 5 * age - 161;
}
console.log(BMR);
}
<body>
<script src="Li9zY3JpcHQuanM="></script>
<section>
<form id="bmrForm" onsubmit="calcBMR()">
<input type="text" id="gender" placeholder="Male or female?">
<input type="number" id="weight" placeholder="Weight in KG">
<input type="number" id="height" placeholder="Height in CM">
<input type="number" id="age" placeholder="How old are you?">
<button type="submit" id="submitBtn">Do Magic!</button>
</form>
<p id="output">0</p>
</section>
</body>
推荐答案
需要修改几项内容才能达到预期效果。
- 不需要
document.getElementById("bmrForm").addEventListener("submit", calcBMR);
行,因为我们可以将函数直接传递给form
元素的onsubmit
属性。 gender
、weightKG
、heightCM
和age
参数不会自动传递给calcBMR
函数。需要从文档中检索值。- 由于scoping,需要在If/Else块上方定义
BMR
变量。 - 需要向
onsubmit
属性添加return
语句,以便表单不会提交和刷新页面。或者,如果期望的效果是更新屏幕上的文本,则添加了click
事件处理程序的button
元素可能比添加了submit
处理程序的form
元素更好。 - 字符串在JavaScript中使用
==
或===
进行比较。因此,gender = 'male'
部分需要更改为gender === 'male'
。 - 为了更新输出,可以使用
document.getElementById("output").textContent = BMR
更改元素的textContent
。
下面是包含上面列出的更改的代码。
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">function calcBMR() {
let gender = document.getElementById("gender").value;
let weightKG = document.getElementById("weight").value;
let heightCM = document.getElementById("height").value;
let age = document.getElementById("age").value;
let BMR;
// Calculate BMR
if (gender === 'male') {
BMR = 10 * weightKG + 6.25 * heightCM - 5 * age + 5;
} else {
BMR = 10 * weightKG + 6.25 * heightCM - 5 * age - 161;
}
console.log(BMR);
document.getElementById("output").textContent = BMR;
return false;
}
<body>
<script src="Li9zY3JpcHQuanM="></script>
<section>
<form id="bmrForm" onsubmit="return calcBMR()">
<input type="text" id="gender" placeholder="Male or female?">
<input type="number" id="weight" placeholder="Weight in KG">
<input type="number" id="height" placeholder="Height in CM">
<input type="number" id="age" placeholder="How old are you?">
<button type="submit" id="submitBtn">Do Magic!</button>
</form>
<p id="output">0</p>
</section>
这篇关于用JS显示计算的Html输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:用JS显示计算的Html输出


猜你喜欢
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Flexslider 箭头未正确显示 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01