我编写了计算运动心率目标的函数,每件事都是正确的,但是在切换功能中,每件事都在做的第一种情况,函数中的最后一笔不做。例如,如果某人有20岁,并且在几分钟内有50个静息心率,则他们的心率目标必须为102.5,但是它的值为53,因为公式不做最后一笔总和。 (mhr * 0.35 + hr).... hr不能求和。
function heartR() {
var y = document.getElementsByName("year5")[0].value;
var hr = document.getElementsByName("RBR")[0].value;
var gole = document.getElementsByName("gole")[0];
var a3 = gole.options[gole.selectedIndex].text;
var mhr = (220 - y) - hr;
switch (a3) {
case "تمرین برای افراد دارای بیماریهای خاص":
document.getElementById("heartR").innerHTML = " MinHR= " + (mhr * 0.35 + hr);
break;
case "تمرین برای چربی سوزی":
document.getElementById("heartR").innerHTML = " MinHR= " + (mhr * 0.50 + hr);
break;
default:
document.getElementById("bmr").innerHTML = "شما شدت فعالیت را انتخاب نکرده اید";
}
}
<div class="sectionmenu">
<form action="#" target="_self" method="get">
<fieldset>
<legend>برآورد ضربان قلب هدف</legend>
سن (years)<br>
<input type="number" name="year5" placeholder="30"><br> ضربان قلب استراحت (HR/min)<br>
<input type="number" name="RBR" placeholder="60"><br> هدف شما<br>
<select name="gole">
<option value="special"> تمرین برای افراد دارای بیماریهای خاص</option>
<option value="fat-burn"> تمرین برای چربی سوزی</option>
<option value="aerobic"> تمرینات هوازی و استقامتی</option>
<option value="vo2max"> تمرین برای تقویت حداکثر اکسیژن مصرفی</option>
<option value="anaerobic"> تمرین برای افزایش ظرفیت بی هوازی</option>
</select><br><br>
<input type="button" value="محاسبه" onClick="heartR()" class="button"><br>
<p id="heartR">
</p>
</fieldset>
</form>
</div>
答案 0 :(得分:0)
hr&mhr的值可能被视为字符串,因此JS自动将输入连接起来。 尝试parseInt()将其转换为数字,然后计算总和,如下所示:
console.log(parseInt(mhr)*0.35+parseInt(hr));
答案 1 :(得分:0)
以下是一些更正:
bmr
的元素不存在,因此您的default
情况引发异常。value
而不是其text
属性来标识switch语句中的所选选项value
属性设置初始值+
运算符将输入值转换为数字。和更正的代码段:
function heartR() {
var y = +document.getElementsByName("year5")[0].value;
var hr = +document.getElementsByName("RBR")[0].value;
var gole = document.getElementsByName("gole")[0];
var a3 = gole.options[gole.selectedIndex].value;
var mhr = (220 - y) - hr;
switch (a3) {
case 'special':
document.getElementById("heartR").innerHTML = " MinHR= " + (mhr * 0.35 + hr);
break;
case 'fat-burn':
document.getElementById("heartR").innerHTML = " MinHR= " + (mhr * 0.50 + hr);
break;
default:
document.getElementById("bmr").innerHTML = "شما شدت فعالیت را انتخاب نکرده اید";
}
}
<div class="sectionmenu">
<form action="#" target="_self" method="get">
<fieldset>
<legend>برآورد ضربان قلب هدف</legend>
سن (years)<br>
<input type="number" name="year5" value="30"><br> ضربان قلب استراحت (HR/min)<br>
<input type="number" name="RBR" value="60"><br> هدف شما<br>
<select name="gole">
<option value="special"> تمرین برای افراد دارای بیماریهای خاص</option>
<option value="fat-burn"> تمرین برای چربی سوزی</option>
<option value="aerobic"> تمرینات هوازی و استقامتی</option>
<option value="vo2max"> تمرین برای تقویت حداکثر اکسیژن مصرفی</option>
<option value="anaerobic"> تمرین برای افزایش ظرفیت بی هوازی</option>
</select><br><br>
<input type="button" value="محاسبه" onClick="heartR()" class="button"><br>
<p id="heartR"></p>
<p id="bmr"></p>
</fieldset>
</form>
</div>
答案 2 :(得分:0)
function heartR() {
var y = document.getElementsByName("year5")[0].value;
var hr = document.getElementsByName("RBR")[0].value;
var gole = document.getElementsByName("gole")[0];
var a3 = gole.options[gole.selectedIndex].text;
var mhr = (220 - y) - hr;
switch (a3) {
case "تمرین برای افراد دارای بیماریهای خاص":
document.getElementById("heartR").innerHTML = " MinHR= " + (mhr * 0.35 + hr);
break;
case "تمرین برای چربی سوزی":
document.getElementById("heartR").innerHTML = " MinHR= " + (mhr * 0.50 + hr);
break;
default:
document.getElementById("bmr").innerHTML = "شما شدت فعالیت را انتخاب نکرده اید";
}
}
<div class="sectionmenu">
<form action="#" target="_self" method="get">
<fieldset>
<legend>برآورد ضربان قلب هدف</legend>
سن (years)<br>
<input type="number" name="year5" placeholder="30"><br> ضربان قلب استراحت (HR/min)<br>
<input type="number" name="RBR" placeholder="60"><br> هدف شما<br>
<select name="gole">
<option value="special"> تمرین برای افراد دارای بیماریهای خاص</option>
<option value="fat-burn"> تمرین برای چربی سوزی</option>
<option value="aerobic"> تمرینات هوازی و استقامتی</option>
<option value="vo2max"> تمرین برای تقویت حداکثر اکسیژن مصرفی</option>
<option value="anaerobic"> تمرین برای افزایش ظرفیت بی هوازی</option>
</select><br><br>
<input type="button" value="محاسبه" onClick="heartR()" class="button"><br>
<p id="heartR">
</p>
</fieldset>
</form>
</div>
function heartR(){
var y= document.getElementsByName("year5")[0].value;
var hr= document.getElementsByName("RBR")[0].value;
var gole = document.getElementsByName("gole")[0];
var a3=gole.options[gole.selectedIndex].value;
var mhr= (220 - y)-hr;
switch (a3) {
case 'special':
document.getElementById("heartR").innerHTML= " MinHR= " + (mhr*0.35+parseInt(hr)) + "<br/>" + " MaxHR = " + (mhr*0.45+parseInt(hr));
break;
case 'fat-burn':
document.getElementById("heartR").innerHTML= " MinHR= " + (mhr*0.50+parseInt(hr)) + "<br/>" + " MaxHR = " + (mhr*0.60+parseInt(hr));
break;
case 'aerobic':
document.getElementById("heartR").innerHTML= " MinHR= " + (mhr*0.55+parseInt(hr)) + "<br/>" + " MaxHR = " + (mhr*0.70+parseInt(hr));
break;
case 'vo2max':
document.getElementById("heartR").innerHTML= " MinHR= " + (mhr*0.75+parseInt(hr)) + "<br/>" + " MaxHR = " + (mhr*0.85+parseInt(hr));
break;
case 'anaerobic':
document.getElementById("heartR").innerHTML= " MinHR= " + (mhr*0.85+parseInt(hr)) + "<br/>" + " MaxHR = " + (mhr*1+parseInt(hr));
break;
default:
document.getElementById("heartR").innerHTML="شما شدت فعالیت را انتخاب نکرده اید";
}
}
<div class="sectionmenu">
<form action="#" target="_self" method="get">
<fieldset>
<legend>برآورد ضربان قلب هدف</legend>
سن (years)<br>
<input type="number" name="year5" value="30"><br>
ضربان قلب استراحت (HR/min)<br>
<input type="number" name="RBR" value="60"><br>
هدف شما<br>
<select name="gole">
<option value="special"> تمرین برای افراد دارای بیماریهای خاص</option>
<option value="fat-burn"> تمرین برای چربی سوزی</option>
<option value="aerobic"> تمرینات هوازی و استقامتی</option>
<option value="vo2max"> تمرین برای تقویت حداکثر اکسیژن مصرفی</option>
<option value="anaerobic"> تمرین برای افزایش ظرفیت بی هوازی</option>
</select><br><br>
<input type="button" value="محاسبه" onClick="heartR()" class="button"><br>
<p id="heartR">
</p>
</fieldset>
</form>
</div>