2014-10-03 93 views
0

嘿傢伙我想創建一個JavaScipt函數,當被調用時將打印由claclBMI()函數創建的值。我覺得有第一個功能做的BMI的計算是正確的。無論如何要讓按鈕打印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 = myResult;'替換'BMI.value =「parseInt(myResult)」;''嗎?此外,您的按鈕'onclick'可能只是'calcBMI()'。 – 2014-10-03 00:32:51

+0

'document.getElementById('BMI');'應該是'document.getElementById('calcBMI');' – 2014-10-03 00:33:38

+0

'BMI.value = ...'應該是'BMI.textContent = ...' – 2014-10-03 00:35:34

回答

0

一些評論:

  • calcBMI沒有返回任何值
  • 覺得沒有什麼,因爲不存在與id的元素BMI
  • BMI.value爆炸,因爲BMI是不確定的
  • 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另外,當你調用printBMI()函數document.write()時,我認爲會擦除頁面上的所有內容,並用你的值替換它。

+1

這是一個開始,但還有很多其他問題。 – 2014-10-03 00:37:03