繁体   English   中英

如何将代码中的NaN更改为“ 0”或“正在工作...”

[英]How do I change the NaN in my code to “0”, or, “Working…”

因此,我正在制作一个缺少的三角腿计算器。 我唯一的问题是,当我填入一个框时会显示NaN。 真烦人 那么有没有办法我可以将NaN更改为其他内容? 这是我的代码:

<html>
<head>
<script type="text/javascript">
function missingleg(a,c){
return Math.sqrt(c*c - a*a);
}
</script>
</head>
<body>
<input type="button" value="Missing Leg";" />
Leg       :<input type="text" id="leg" size="2" onChange="document.getElementById('lostleg').value=missingleg(parseInt(document.getElementById('leg').value),parseInt(document.getElementById('hypo').value));" />
Hypotenuse:<input type="text" id="hypo" size="2" onChange="document.getElementById('lostleg').value=missingleg(parseInt(document.getElementById('leg').value),parseInt(document.getElementById('hypo').value)); " />
Missing Leg:<input type="text" placeholder="0" id="lostleg" size="2" />
</body>
</html>   

如果您输入的不是数字,则MDN isNaN()会通知您。

function missingleg(a,c){
    if (isNaN(a) || isNaN(c)) { 
        return "What you want to return"; 
    } else {
        return Math.sqrt(c*c - a*a);
    }
}

发生这种情况是因为您的输入没有初始值,所以在您输入第一个值之后,该值的更改会触发您的代码。 您的代码正在获取输入#2的值,但其中没有任何值。

改为这样做:

<html>
<head>
<script type="text/javascript">
function missingleg(){ 
var leg=parseInt(document.getElementById('leg').value);
var hypo=parseInt(document.getElementById('hypo').value);
var val=Math.sqrt(hypo*hypo-leg*leg);
if(isNaN(val)){
    alert('One of the values you entered is not a valid number');
}
else{
  document.getElementById('lostleg').value=val;
}

}
</script>
</head>
<body>
<input type="button" value="Missing Leg" onclick="missingleg()" />
Leg       :<input type="text" id="leg" size="2" />
Hypotenuse:<input type="text" id="hypo" size="2" />
Missing Leg:<input type="text" placeholder="0" id="lostleg" size="2" />
</body>
</html> 

当您单击缺少的腿按钮时,它将计算值;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM