何が間違っていますか?教科書の例によると、これは十分なコードであると思われますが、ブラウザでNaNを実行すると得られます。NaN、BMI計算ツールを実行しているとき
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8"/>
<html>
<head>
<title>test</title>
</head>
<body>
<p>Vekt: <input type="text" id="txtVekt" /></p>
<p>Hoyde: <input type="text" id="txtHoyde" /></p>
<button id="btnBeregn">Beregn</button>
<p id="resultat"></p>
<script>
window.onload = beregn();
function beregn(){
var hoyde = document.getElementById("txtHoyde").value;
var vekt = document.getElementById("txtVekt").value;
var bmi = vekt/(hoyde * vekt);
document.getElementById("resultat").innerHTML = "Din BMI er: " + bmi;
}
</script>
</body>
</html>
まあ、 'document.getElementById(" txtHoyde ")。value'は、ページが読み込まれた直後に何を返すのでしょうか?私が見ることから、価値はありません。私が価値を持たずに数学を行うなら、結果は必ずNotANumberでなければなりません。 – csmckelvey
テキストボックスの初期値はデフォルトで0になっていますので、vekt /(hoyde * vekt)は0で割っています。 –
window onloadイベントは、サイトのロード時にトリガされるので、ユーザがサイトを開くとトリガします。その時点で(私は、テキスト入力は空であると仮定します)。また、このようにすると、関数beregnenが即座に実行されます。さらに、parseFloat(または類似のもの)を使用してテキスト入力の値を解析する必要があります。 – scriptify