Javascript'NaN'计算

时间:2014-01-13 12:16:03

标签: javascript

我是javascript的新手,并尝试制作一个基本的BMI计算器。 但是当我点击计算时,我必须做错了,因为它显示'NaN'。 有什么想法吗? 感谢

<!DOCTYPE html>
<html>
<body>

<form>
Height: <input id="h" type="text" name="height"><br>
Weight: <input id="w" type="text" name="weight">
</form>

<button onclick="myFunction()">Calculate</button>

<p id="bmi"></p>

<script>
function myFunction()
{
var h;
var w;
var x=Math.round(w/(h*h));
var demoP=document.getElementById("bmi")
demoP.innerHTML="Your BMI is: " + x;
}
</script>

</body>
</html>

6 个答案:

答案 0 :(得分:3)

试试这个:

function myFunction() {
    var h = document.getElementById("h").value;
    var w = document.getElementById("w").value;
    var demoP = document.getElementById("bmi");
    var x;

    //checking are h and w numbers
    if (isNaN(h) || isNaN(w)) {
        x = 'Bad value';
    } else {
        x = Math.round(w/(h*h));
    }

    demoP.innerHTML="Your BMI is: " + x;
}

答案 1 :(得分:2)

试试这个,

已添加

var h = document.getElementById("h").value; 

var w = document.getElementById("w").value;

Jaavscript:

    function myFunction()
    {
        var h = document.getElementById("h").value;
        var w = document.getElementById("w").value;
        if((h!="" && isNaN(h)) && (w!="" && isNaN(w) ){
            var x=Math.round(w/(h*h));
            var demoP=document.getElementById("bmi");
           demoP.innerHTML="Your BMI is: " + x; 
         }
    }

答案 2 :(得分:2)

一些变化:

var h = document.getElementById("h").value;
var w = document.getElementById("w").value;

答案 3 :(得分:2)

var h = document.getElementById("h").value;
var w = document.getElementById("w").value;

请使用上面的代码初始化h和w的值。确认user2110655

答案 4 :(得分:0)

var h;
var w;
var x=Math.round(w/(h*h));

hw尚未初始化。因此X不是数字。

答案 5 :(得分:0)

试试这些变种:

var h = parseInt(document.getElementById('h').value());
var w = parseInt(document.getElementById('w').value());