2016-03-17 2 views
-1

Я должен написать код javascript для html-страницы, которая рассчитает ИМТ лиц и сообщит им, что это значит (номер). Правила теста заключались в том, чтобы не изменять html на странице, а просто написать код javascript и связать его с html-страницей. Это все. Я скопировал html-страницу на случай, если вы, ребята, захотите взглянуть на нее. Вот что должен делать калькулятор BMI, используя javascript:Как написать javascript-код для BMI_Calculator.html?

  • Человек вводит имя, выбирает пол, вводит вес и высоту. Приложение рассчитает людей BMR, BMI и скажет, что это значит (т. Е. Сказать «вы слишком тонкие», «вы здоровы» или «у вас избыточный вес»). , и он отобразит изображение тонкого, здорового или избыточного веса человека, который является png-изображением.
  • Если они не вводят имя, сообщение об ошибке предложит им ввести имя. Имя должно содержать не менее пяти символов.
  • Если они не выбрали пол, тогда сообщение об ошибке предложит им выбрать пол. Пол представлен радиокнопкой. Пользователь выбирает мужчин или женщин.
  • Если пользователь не вводит вес, сообщение об ошибке предложит им ввести вес.
  • Если высота не указана, сообщение об ошибке предложит им ввести высоту.
  • Если вы мужчина, вы BMR рассчитывается как: BMR = 10 * (вес + 6.25) (высота-5) (возраст + 5).
  • Если вы женщина, вы BMR рассчитывается как: BMR = 10 * (вес + 6.25) (высота-5) (возраст-161).
  • Если ИМТ меньше 18,5: «вы слишком тонкие».
  • Если ИМТ составляет от 20 до 25: «вы здоровы».
  • Если ИМТ больше 25: «у вас избыточный вес».

Кроме того, пожалуйста, не ставьте вопрос на удержание или удалите его. Это важно для меня, и мне нужна помощь. Если вы хотите получить помощь, пожалуйста, не делайте этого. Мне потребовалось много времени, чтобы написать этот вопрос.

Вот HTML, что я должен написать код для яваскрипта:

<html> 
<head> 
    <title> BMI Calculator </title> 
    <style> 
    label { 
     display: inline-block; 
     width: 80px; 
     height: 25px; 
    } 
    button { 
     height:30px; 
     margin: 5px 0px; 
    } 
    fieldset { 
     display: inline-block; 
    } 
    #errMsg { 
     color: red; 
    } 
    #frm { 
     float: left; 
     width: 30%; 
    } 
    #imgSec { 
     float: left; 
     padding: 5px 0px; 
     border-left: 3px solid darkblue; 
    } 
    </style> 
    <!-- link to javascript file --> 
    <script type="text/javascript" src="BMI_javascript.js"> 
    </script> 
</head> 
<body> 
    <div id="title"><h3>BMI Calculator</h3></div> 
    <section id="frm"> 
    <form name="bmiForm" onsubmit="return false;"> 
     <fieldset> 
     <legend>Enter your Details:</legend> 
     <label for="user">Name:</label> 
     <input type="text" id="user" size="25" required> <br /> 
     <label for="gender">Gender:</label> 
     <input type="radio" id="rbMale" name="gender"> Male 
     <input type="radio" id="rbFemale" name="gender">Female <br /> 
     <label for="age">Age:</label> 
     <input type="number" id="age" size="10" required> <br /> 
     <label for="weight">Weight(kg):</label> 
     <input type="number" id="weight" size="10" required> <br /> 
     <label for="height">Height(cm):</label> 
     <input type="number" id="height" size="10" required> <br /> 
     <div id="errMsg"></div> 
     </fieldset> 
     <br> 
     <button onclick="calculate()">Calculate BMI</button> 
     <button type="reset" onclick="clearErr()">Reset</button> 
     <br> 
     <fieldset> 
     <legend>Result:</legend> 
     <label for="bmr">Your BMR: </label> 
     <input type="text" name="bmr" id="bmr" size="18" readonly><br /> 
     <label for="bmi">Your BMI: </label> 
     <input type="text" name="bmi" id="bmi" size="10" readonly><br /> 
     <label for="meaning">This Means: </label> 
     <input type="text" name="meaning" id="meaning" size="25" readonly><br/> 
     </fieldset> 
    </section> 
    <section id="imgSec"> 
     <img id="img" src="" height="250px">  
    </section> 
    </form> 
</body> 
</html> 

А вот Javascript я написал для него. Я знаю, что это ужасно. Проблема в том, что код не работает. Ничего не работает.

function GenderType() { 
    var GenderType = document.getElementsByName("rbMale","rbFemale"); 

    if(rbMale == "Male") { 
    GenderType.innerHTML = "Male"; 
    } else { 
    rbFemale == "Female"; 
    GenderType.innerHTML = "Female"; 
    }  
} 

function validate() { 
    var name = document.getElementById("name"); 
    var age = document.getElementById("age"); 
    var male = document.getElementById("male"); 
    var female = document.getElementById("female"); 
    var weight = document.getElementById("weight"); 
    var height = document.getElementById("height");   

    error = false; 

    var reName = /^[a-zA-Z ]{5,}$/; 
    if (reName.test(name.value) == false) { 
    nameError.innerHTML = "Name must be eight letters or more"; 
    error = true; 
    } else { 
    nameError.innerHTML = ""; 
    } 

    age = parseInt(age.value); 
    if (isNaN(age) || age < 0 || age > 65) { 
    ageError.innerHTML = "Age must be in range 0-65"; 
    error = true; 
    } else { 
    ageError.innerHTML = ""; 
    } 

    weight = parseInt(weight.value); 
    if (isNaN(weight) || weight < 0) { 
    weightError.innerHTML = "Weight must be greater than 0"; 
    error = true; 
    } else { 
    weightError.innerHTML = ""; 
    } 

    height = parseInt(height.value); 
    if (isNaN(height) || height < 0) { 
    heightError.innerHTML = "height must be greater than 0" 
    error = true; 
    } else { 
    heightError.innerHTML = ""; 
    } 

    if (!male.checked & !female.checked) { 
    genderError.innerHTML = "Select value"; 
    error = true; 
    } else { 
    genderError.innerHTML = "";  
    }      
} 

function BMRCalculate() { 
    if (validate()==false) { 
    var GenderType = document.getElementById("rbMale","rbFemale").value; 
    var age = document.getElementById("age").value; 
    var female = document.getElementById("rbFemale"); 
    var male = document.getElementById("rbMale"); 
    var weight = document.getElementById("weight"); 
    var height = document.getElementById("height"); 
    var BMIValue = weight/((height/100)*(height/100)); 
    var BMRValue; 
    var ThisMeans = document.getElementById("meaning"); 

    if(GenderType == male) { 
     BMRValue = 10*(weight+6.25)*(height-5)*(age+5); 
    } else { 
     GenderType = female; 
     BMRValue = 10*(weight+6.25)*(height-5)*(age-161); 
    } 

    if (BMIValue<18.5) { 
    ThisMeans = "you are too thin"; 
    document.write(ThisMeans); 
    } else if (BMIValue>18.5 && BMIValue<25) { 
    ThisMeans = "you are healthy"; 
    document.write(ThisMeans); 
    } else { 
    ThisMeans = "You are not healthy"; 
    document.write(ThisMeans); 
    } 
} 
+0

Ваша функция js вызывается: 'function BMRCalculate()', но в вашем html у вас есть: '<кнопка onclick =" calculate() "> Calculate BMI'. Зачем? – dpaul1994

+0

@ user272976 ok Я думаю, что знаю, что вы имеете в виду. Первое, что я должен сделать, это изменить имя из BMRCalculate() для вычисления BMI() Я сделаю это, спасибо вам, бог, благослови вас. Есть ли что-то еще, что я должен изменить, как следует передать функции некоторые параметры? – hugh0210

+0

@gavgrif Я не знаю, на экзамене они сказали мне, что BMR рассчитывается по-разному, и ИМТ рассчитывается по-разному, поэтому я пытался что-то сделать в тесте, и это то, что я мог сделать. Они сказали, что ИМТ равен весу/((высота/100) * (высота/100)); и BMR, если мужчина = BMRValue = 10 * (вес + 6,25) * (высота-5) * (возраст + 5); также BMR, если женщина = 10 * (вес + 6.25) * (высота-5) * (возраст-161); – hugh0210

ответ

0

Mate, @gavgrif дал вам некоторые очень хорошие советы, но о коде ... попробуйте начать снова и снова думаю, что проблема.

Смежные вопросы