hT的值有问题 还有bmi bmr值是undefined need lose和gain都是NaN 求教如何获得正常的值???
var age ;
var gender ;
var hFt ;
var hIn ;
var hT;
var weight;
var bmi;
var bmr;
var act;
var need;
var lose;
var gain;
function result(){
var name = document.getElementById('name');
age = document.getElementById('age');
gender = getGender();
hFt = document.getElementById('hFt');
hIn = document.getElementById('hIn');
hT= ((hFt*12) + hIn)*0.254;
weight = document.getElementById('weight');
bmi = getBmi();
bmr = getBmr();
act = document.getElementById('act').value;
need = getNeed();
lose = getLose();
gain = getGain();
alert("Name:"+name.value+"\n"+
"Age:"+age.value+"\n"+
"Height:"+hFt.value+"'"+hIn.value+"\n"+
"Weight:"+weight.value+"lbs"+"\n"+
"BMI:"+bmi.value+"\n"+
"BMR:"+bmr.value+"\n"+
"Activity level:"+act+"\n"+
"Caloric Need:"+need+"\n"+
"Caloric Need to lose 1/2 pound(s):"+lose+"/"+need+"\n"+
"Caloric Need to gain 1/2 pound(s):"+gain+"/"+need+"\n" );
}
function getBmi(){
return parseFloat((0.45359237*weight)/(hT*hT));
}
function getGender(){
var obj;
obj=document.getElementsByName('sex');
if(obj!=null){
var i;
for(i=0;i<obj.length;i++){
if(obj[i].checked){
return obj[i].value;
break;
}
}
}else{
return null;
}
}function getBmr(){
var tBmr;
if(gender.value == "male"){
tBmr = 66 + (13.7 * weight * 0.45359237) + (5 * hT * 100) - (6.8*age);
}else{
tBmr = 665 + (9.6 * weight * 0.45359237) + (1.8 * hT* 100) - (4.7 * age);
}
return tBmr;
}function getNeed(){
var tNeed;
if(act == 'Extremely Inactive'){
tNeed = bmr.value;
} else if(act == 'Sedentary'){
tNeed = bmr.value * 1.2;
}else if(act == 'Lightly Active'){
tNeed = bmr.value * 1.375;
} else if(act == 'Moderately Active'){
tNeed = bmr.value * 1.55;
} else if(act == 'Vigorously Active'){
tNeed = bmr.value * 1.725;
} else if(act == 'Extremely Active'){
tNeed = bmr.value * 1.9;
}
return tNeed;
}
function getLose(){
return (need - 3500);
}
function getGain(){
return (need + 3500);
}javascriptfunction
var age ;
var gender ;
var hFt ;
var hIn ;
var hT;
var weight;
var bmi;
var bmr;
var act;
var need;
var lose;
var gain;
function result(){
var name = document.getElementById('name');
age = document.getElementById('age');
gender = getGender();
hFt = document.getElementById('hFt');
hIn = document.getElementById('hIn');
hT= ((hFt*12) + hIn)*0.254;
weight = document.getElementById('weight');
bmi = getBmi();
bmr = getBmr();
act = document.getElementById('act').value;
need = getNeed();
lose = getLose();
gain = getGain();
alert("Name:"+name.value+"\n"+
"Age:"+age.value+"\n"+
"Height:"+hFt.value+"'"+hIn.value+"\n"+
"Weight:"+weight.value+"lbs"+"\n"+
"BMI:"+bmi.value+"\n"+
"BMR:"+bmr.value+"\n"+
"Activity level:"+act+"\n"+
"Caloric Need:"+need+"\n"+
"Caloric Need to lose 1/2 pound(s):"+lose+"/"+need+"\n"+
"Caloric Need to gain 1/2 pound(s):"+gain+"/"+need+"\n" );
}
function getBmi(){
return parseFloat((0.45359237*weight)/(hT*hT));
}
function getGender(){
var obj;
obj=document.getElementsByName('sex');
if(obj!=null){
var i;
for(i=0;i<obj.length;i++){
if(obj[i].checked){
return obj[i].value;
break;
}
}
}else{
return null;
}
}function getBmr(){
var tBmr;
if(gender.value == "male"){
tBmr = 66 + (13.7 * weight * 0.45359237) + (5 * hT * 100) - (6.8*age);
}else{
tBmr = 665 + (9.6 * weight * 0.45359237) + (1.8 * hT* 100) - (4.7 * age);
}
return tBmr;
}function getNeed(){
var tNeed;
if(act == 'Extremely Inactive'){
tNeed = bmr.value;
} else if(act == 'Sedentary'){
tNeed = bmr.value * 1.2;
}else if(act == 'Lightly Active'){
tNeed = bmr.value * 1.375;
} else if(act == 'Moderately Active'){
tNeed = bmr.value * 1.55;
} else if(act == 'Vigorously Active'){
tNeed = bmr.value * 1.725;
} else if(act == 'Extremely Active'){
tNeed = bmr.value * 1.9;
}
return tNeed;
}
function getLose(){
return (need - 3500);
}
function getGain(){
return (need + 3500);
}javascriptfunction
//你写的函数result里面
//age, hFt, hIn, weight获取的只是id为'age','hFt','hIn','weight'的控件, 怎么能用于计算?
//要么一开始获取value, 要么计算的时候加上.value
function result(){
var name = document.getElementById('name');
age = document.getElementById('age');
gender = getGender();
hFt = document.getElementById('hFt');
hIn = document.getElementById('hIn');
hT= ((hFt*12) + hIn)*0.254;
weight = document.getElementById('weight');
bmi = getBmi();
bmr = getBmr();
act = document.getElementById('act').value;
need = getNeed();
lose = getLose();
gain = getGain();
}
那么你alert的时候就已经不用加value了
alert("Name:"+name+"\n"+
"Age:"+age+"\n"+
"Height:"+hFt+"'"+hIn+"\n"+
"Weight:"+weight+"lbs"+"\n"+
"BMI:"+bmi+"\n"+
"BMR:"+bmr+"\n"+
"Activity level:"+act+"\n"+
"Caloric Need:"+need+"\n"+
"Caloric Need to lose 1/2 pound(s):"+lose+"/"+need+"\n"+
"Caloric Need to gain 1/2 pound(s):"+gain+"/"+need+"\n" );
那么你alert的时候就已经不用加value了
alert("Name:"+name+"\n"+
"Age:"+age+"\n"+
"Height:"+hFt+"'"+hIn+"\n"+
"Weight:"+weight+"lbs"+"\n"+
"BMI:"+bmi+"\n"+
"BMR:"+bmr+"\n"+
"Activity level:"+act+"\n"+
"Caloric Need:"+need+"\n"+
"Caloric Need to lose 1/2 pound(s):"+lose+"/"+need+"\n"+
"Caloric Need to gain 1/2 pound(s):"+gain+"/"+need+"\n" );
var name = document.getElementById('name');
age = document.getElementById('age').value;
gender = getGender();
hFt = document.getElementById('hFt').value;
hIn = document.getElementById('hIn').value;
hT= ((hFt*12) + hIn)*0.254;
weight = document.getElementById('weight').value;
act = document.getElementById('act').value;
bmi = getBmi();
bmr = getBmr();
need = getNeed();
lose = getLose();
gain = getGain();
alert("Name:"+name.value+"\n"+
"Age:"+age+"\n"+
"Height:"+hFt+"'"+hIn+"\n"+
"Weight:"+weight+"lbs"+"\n"+
"BMI:"+bmi+"\n"+
"BMR:"+bmr+"\n"+
"Activity level:"+act+"\n"+
"Caloric Need:"+need+"\n"+
"Caloric Need to lose 1/2 pound(s):"+lose+"/"+need+"\n"+
"Caloric Need to gain 1/2 pound(s):"+gain+"/"+need+"\n" );
}
function getBmi(){
return parseFloat(((0.45359237*weight)/(hT*hT))).toFixed(2);
}
function getGender(){
var obj;
obj=document.getElementsByName('sex');
if(obj!=null){
var i;
for(i=0;i<obj.length;i++){
if(obj[i].checked){
return obj[i].value;
break;
}
}
}else{
return null;
}
}function getBmr(){
var tBmr;
if(gender.value == "male"){
tBmr = 66+(13.7 * weight * 0.45359237) + (5 * hT* 100) - (6.8 * age);
}else if(gender.value == "female"){
tBmr = 665 + (9.6 * weight * 0.45359237) + (1.8 * hT* 100) - (4.7 * age);
}
return tBmr;
}function getNeed(){
var tNeed;
if(act == 'Extremely Inactive'){
tNeed = bmr.value;
} else if(act == 'Sedentary'){
tNeed = bmr.value * 1.2;
}else if(act == 'Lightly Active'){
tNeed = bmr.value * 1.375;
} else if(act == 'Moderately Active'){
tNeed = bmr.value * 1.55;
} else if(act == 'Vigorously Active'){
tNeed = bmr.value * 1.725;
} else if(act == 'Extremely Active'){
tNeed = bmr.value * 1.9;
}
return tNeed;
}
function getLose(){
return (need - 3500);
}
function getGain(){
return (need + 3500);
}标准结果是
我的结果是
就是不知道为什么???
//gender.value--> gender即可
//因为初始的时候gender已经是value的值
function getBmr(){
var tBmr;
if(gender.value == "male"){
tBmr = 66+(13.7 * weight * 0.45359237) + (5 * hT* 100) - (6.8 * age);
}else if(gender.value == "female"){
tBmr = 665 + (9.6 * weight * 0.45359237) + (1.8 * hT* 100) - (4.7 * age);
}
return tBmr;
}
//bmr.value --> bmr
function getNeed(){
var tNeed;
if(act == 'Extremely Inactive'){
tNeed = bmr.value;
} else if(act == 'Sedentary'){
tNeed = bmr.value * 1.2;
}else if(act == 'Lightly Active'){
tNeed = bmr.value * 1.375;
} else if(act == 'Moderately Active'){
tNeed = bmr.value * 1.55;
} else if(act == 'Vigorously Active'){
tNeed = bmr.value * 1.725;
} else if(act == 'Extremely Active'){
tNeed = bmr.value * 1.9;
}
return tNeed;
}
看看hFt hIn 跟hT的值然后在看那个函数getBmi是否计算正确就行了啊
Need 还是undefined然后lose和gain是NaN
不然就在函数里面alert看看每一步输出什么