我如何摆脱NaN在我的JavaScript和HTML代码的文本框
How do i get rid of the NaN in the text box in my JavaScript and HTML code?
我想做一个三角形斜边计算器。先放一条腿,再放另一条腿,然后就得到斜边。但是,如果你先填第二个方框,它会说NaN。我知道这不是那么重要,但是有没有办法消除它,让它显示"0",直到两个盒子都被填满?下面是代码:
<html>
<head>
<script type="text/javascript">
function hypotenuse(a,b){
return Math.sqrt(a*a + b*b);
}
</script>
</head>
<body>
<input type="button" value="Hypoteneuse";" />
A:<input type="text" id="leg1" size="2";" />
B:<input type="text" id="leg2" size="2" onChange="document.getElementById('result').value=hypotenuse(parseInt(document.getElementById('leg1').value),parseInt(document.getElementById('leg2').value));" />
Hypotenuse:<input type="text" placeholder="0" id="result" size="2" />
</body>
</html>
您可以在第一次输入时设置默认值:
<input type="text" id="leg1" size="2" value="0" />
或者您可以将函数绑定到单击按钮,并在尝试计算之前进行一些验证(fiddle):
var leg1 = document.getElementById('leg1');
var leg2 = document.getElementById('leg2');
function hypotenuse(a,b){
return Math.sqrt(a*a + b*b);
}
document.getElementById('submit').addEventListener('click', function() {
// Check both fields are populated. This validation could
// be more sophisticated if you needed it to be.
if (leg1.value !== '' && leg2.value !== '') {
document.getElementById('result').value = hypotenuse(parseInt(leg1.value),parseInt(leg2.value));
} else {
// You could display an error message here
console.log('Please fill out both fields');
}
});
您可以使用isNaN()
来检查您的值是否存在:
<script type="text/javascript">
function hypotenuse(a,b){
if (isNaN(a) || isNaN(b)) {
return 0;
}
return Math.sqrt(a*a + b*b);
}
</script>
你可以这样做:
Javascript:function hypotenuse(){
var angleA = document.getElementById['leg1'].val;
var angleB = document.getElementById['leg2'].val;
if(angleA != '' && angleB != ''){
var angleC = Math.sqrt(a*a + b*b);
document.getElementById['result'].val = angleC;
}
}
你的HTML看起来像
A:<input type="text" id="leg1" size="2" onblur="hypotenuse()" />
B:<input type="text" id="leg2" size="2" onblur="hypotenuse()" />
Hypotenuse:<input type="text" placeholder="0" id="result" size="2" />
相关文章:
- 创建一个循环来简化HTML和CSS代码
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- 如何解析结构不良的 html 代码
- HTML标记,包含带引号的JavaScript代码中的引号
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 将第一个字母大写并去掉html代码
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- 使用.format在一些HTML代码中插入文本,会出现错误(Python)
- html代码没有在记事本++上运行
- 来自mysql的动态值用于html代码点火器视图中的图形
- 如何:编写漂亮的HTML代码和Javascript控制台
- 在html标记中序列化javascript代码
- 我需要java代码来打开html代码onclick事件
- html代码需要可点击的文本按钮
- 无法使用我的代码(html/js/css)初始化网络摄像头
- 如何编辑此代码HTML/CSS以使'选择'JS代码也复制2剪贴板
- 如何使用js来反转义代码html
- 如何在 ATTR 标题中显示代码 HTML