Javascript控制台日志在if语句计算结果为false后自行清除
Javascript console log clearing itself after if statement evaluates to false
我有以下简单的代码从一个练习在现代Javascript中用于计算一个球体的体积,它包含一个部分检查,以确保一个值已输入半径。
-
我输入了一个负数来测试这个函数,它可以工作,但是我我对控制台显示的内容很感兴趣,所以我检查了一下。我结束了看到一个错误在日志中闪烁,然后消失-太快读取。
-
这就是if语句计算为false时发生的情况吗?为什么这个错误显示然后几乎被清除马上吗?我知道我可以用另一种方法来调试这个(也就是使用console.log或通过其他方式记录问题),我只是对为什么这个错误消失感兴趣。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Volume of a Sphere Calculator</title>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<!-- sphere.html -->
<form action="" method="post" id="theForm">
<fieldset>
<p>Use this form to calculate the volume of a sphere.</p>
<div>
<label for="radius">Radius</label>
<input type="text" name="radius" id="radius" required></div>
<div>
<label for="volume">Volume</label>
<input type="text" name="volume" id="volume"></div>
<div>
<input type="submit" value="Calculate" id="submit"></div>
</fieldset>
</form>
<script src="js/sphere.js"></script>
</body>
</html>
JS:
function calculate() {
'use strict';
var volume;
var radius = document.getElementById('radius');
if (radius && (radius.value > 0)){
volume = (4/3) * Math.PI * Math.pow(radius.value, 3);
}
volume = volume.toFixed(4);
document.getElementById('volume').value = volume;
return false;
}
function init() {
'use strict';
var theForm = document.getElementById('theForm');
theForm.onsubmit = calculate;
}
window.onload = init;
因为这是我的console.log输出出现并迅速消失的问题的最佳Google匹配,所以发生在我身上的这种情况可能是因为我有一组空白的标签标记不合适,或者表单没有任何操作。删除这些标签会导致JavaScript和console.log()正常工作
添加另一个解决方案作为谷歌搜索"javascript日志消失"带我到这里。
页面刷新/导航出现问题。
根据mateuszb的评论在控制台设置中选择"保存日志"解决了这个问题。
因为undefined
没有方法toFixed
,它会抛出一个错误,阻止Calculate
到达return false;
由于从未到达该行,因此表单提交,这(通常来说)将表单发布到同一页面。
当页面重新加载时,控制台被重置(我相信这取决于特定的浏览器)。
要解决这个问题,将volume
初始化为0
。
可以使用el.preventDefault();在回调函数
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 单击jquery清除输入值
- 如何将localStorage值设置为false
- 如何在Microsoft VirtualEarth 6.3中使用纯javascript清除整个形状层
- JavaScript-切换“;全部检查”;复选框true/false
- 清除以前的$_GET值或不获取仅隐藏字段的值
- gulp Iconify任务抛出错误TypeError:Path必须是字符串.收到false
- Javascript清除缓存以清除基本身份验证凭据
- 如何使用javascript将字段强制设置为false
- 清除启动日期选取器值
- (false==false==true)怎么可能是真的
- 在 SlickGrid 中编辑后,根据不同列中的另一个单元格清除单元格
- php页面,该页面在清除值后接受输入
- 清除数据并将旧值附加到文本框中
- Array.every返回false,而不是类型error
- Javascript If else 只返回 TRUE 或只返回 FALSE
- 使用javascript清除Asp.NET FreeTextBox(RTF文本框)
- Javascript控制台日志在if语句计算结果为false后自行清除