2014-10-03 5 views
0

Привет, ребята, я пытаюсь создать функцию JavaScipt, которая при вызове будет печатать значение, созданное функцией claclBMI(). Я чувствую, что, имея первую функцию, вычисления для ИМТ правильны. Есть ли способ заставить кнопку напечатать результат функции calcBMI?Сделать кнопку JavaScript напечатать значение

<!doctype html> 
 
<html lang="en"> 
 
<head> 
 
<meta charset="utf-8"> 
 
<title>Body Mass Index</title> 
 
</head> 
 
<body> 
 
<table width="80%" border="0"> 
 
    <tr> 
 
    <th>Weight in Pounds</th> 
 
    <th>Height in Inches</th> 
 
    <th>Body Mass Index</th> 
 
    </tr> 
 
    <tr> 
 
    <td><input id="box1" oninput="number" type="text" /></td> 
 
    <td><input id="box2" oninput="number" type="text" /></td> 
 
    <td><button onclick="printBMI()">Calculate BMI</button></td> 
 
    </tr> 
 
</table> 
 
<p id="calcBMI"></p> 
 
<script> 
 
\t function calcBMI() 
 
{ 
 
\t \t var myBox1 = document.getElementById('box1').value; \t 
 
\t \t var myBox2 = document.getElementById('box2').value; 
 
\t \t var BMI = document.getElementById('BMI'); \t 
 
\t \t var myResult = (myBox1 * 703)/(myBox2 * myBox2); 
 
\t \t BMI.value = "parseInt(myResult)"; 
 
} 
 
\t function printBMI() 
 
{ 
 
    document.write (myResult); 
 
} 
 
</script> 
 
</body> 
 
</html>

+0

Можете ли вы просто заменить 'BMI.value =" parseInt (myResult) ";' с 'BMI.value = myResult;'? Кроме того, ваш 'onclick' для кнопки может быть просто' calcBMI() '. –

+0

'document.getElementById ('BMI');' должно быть 'document.getElementById ('calcBMI');' –

+0

'BMI.value = ...' должно быть 'BMI.textContent = ...' –

ответ

0

Некоторые комментарии:

  • calcBMI не возвращает значение
  • не находит ничего, так как нет ни одного элемента с идентификатором BMI
  • BMI.value взорвется, так как индекс массы тела не определен
  • parseInt(someStringWithDigits) без кавычек является функцией, но у вас есть только строка, которая ничего не делает
  • Вы используете document.write(myResult), но функция printBMI не может видеть переменные, объявленные внутри другой функции.

¿Это какое-то задание? Если да, то было бы хорошо знать, какие знания ожидаются для вас.

Для того, чтобы решить некоторые из ваших вопросов:

  • document.getElementById('box1'); даст вам первый вход
  • calcBMI должен возвращать значение, если у вас есть хороший повод, чтобы присвоить результат где-то еще, но из моя перспектива, кажется, лучше просто вернуть стоимость и не производить никаких других побочных эффектов.
  • После того, как вы это сделаете, document.write(calcBMI()) будет стирать с вашей страницы и отображать результат. Вероятно, вы хотите, чтобы результат был где-то конкретным, но я полагаю, что это хорошее начало.
0

Вы должны ParseInt(), прежде чем пытаться выполнить расчеты на них, если они получены в виде строки:

function calcBMI() { 
    var myBox1 = document.getElementById('box1').value; 
    var myBox2 = document.getElementById('box2').value; 
    var BMI = document.getElementById('BMI'); 
    var myResult = (parseInt(myBox1) * 703)/(parseInt(myBox2) * parseInt(myBox2)); 
    BMI.value = myResult; 
} 

Кроме того, если вы хотите, чтобы результат будет по тексту на кнопке будет указано:

BMI.innerHTML = myResult; 

A lso, когда вы вызываете функцию printBMI() document.write(), стирает все на странице, я думаю, и заменяет ее вашим значением.

+1

Это начало , но есть много других проблем. –

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