parseFloat() returning NaN
parseFloat() returning NaN
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
<style>
.form-control {
margin-bottom: 15px;
}
</style>
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">
<h2 style="margin: 0px; padding: 0px;">Billing Calculator</h2>
</a>
</div>
</div>
</nav>
<div class="col-md-2">
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="date" class="form-control date" placeholder="Search">
<input type="date" class="form-control date" placeholder="Search">
<input type="date" class="form-control date" placeholder="Search">
<input type="date" class="form-control date" placeholder="Search">
<input type="date" class="form-control date" placeholder="Search">
<input type="date" class="form-control date" placeholder="Search">
<input type="date" class="form-control date" placeholder="Search">
</div>
</form>
</div>
<div class="col-md-3">
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" id="one" placeholder="hours">
<input type="text" class="form-control" id="two" placeholder="hours">
<input type="text" class="form-control" id="three" placeholder="hours">
<input type="text" class="form-control" id="four" placeholder="hours">
<input type="text" class="form-control" id="five" placeholder="hours">
<input type="text" class="form-control" id="six" placeholder="hours">
<input type="text" class="form-control" id="seven" placeholder="hours">
<button type="submit" class="btn btn-default" id="click">Calculate</button>
</div>
</form>
</div>
<div class="col-md-1">
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<label for="form-control">Total Hours:</label>
<label for="form-control" id="totalHours">.</label>
</div>
</form>
</div>
<script type="text/javascript">
var hoursOne = parseFloat(document.getElementById("one").value);
document.getElementById("click").onclick = function(){
alert(hoursOne);
}
</script>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>
我试图从文本输入中检索一个数字,即使我使用innerHTML
,它也总是提醒NaN
。该程序是一个计费计算器,它计算工作小时数并返回总小时数。Date实际上与值没有太大关系,但可以帮助用户跟踪。
<script type="text/javascript">
document.getElementById("click").onclick = function(){
var hoursOne = parseFloat(document.getElementById("one").value);
alert(hoursOne);
}
</script>
您的代码在填写表单之前执行。您需要获取函数中的数据。
将混乱减少到最重要的程度,您就有了:
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" id="one" placeholder="hours">
<button type="submit" class="btn btn-default" id="click">Calculate</button>
</div>
</form>
<script type="text/javascript">
var hoursOne = parseFloat(document.getElementById("one").value);
document.getElementById("click").onclick = function(){
alert(hoursOne);
}
</script>
因此,当页面加载时,您正在设置hoursOne的值,而不是将其重置为输入的当前值。因此,值为"(空字符串),parseFloat("")
为NaN。您需要做的是在单击按钮时获取值。
此外,为控件指定一个名称,使其能够成功,并指定一个默认值,使其仅在使用出错时返回NaN:
document.getElementById("click").onclick = function(){
alert(parseFloat(parseFloat(this.form.hoursOne.value)));
}
<form>
<label for="one">Hours:
<input type="text" class="form-control" id="one" name="hoursOne" value="0">
</label>
<button type="button" id="click">parseFloat</button>
</form>
最后,您永远不应该使用占位符,而应该使用带有所需格式提示的适当标签。如果使用占位符作为标签,一旦用户输入了内容,他们就无法再看到标签,也不知道输入的目的是什么。
相关文章:
- JavaScript NaN equvialence
- 如何为排除无穷大和NaN的数字声明Flow类型
- 为什么我在这个javaScript代码中使用NaN
- 如何防止Math.max()返回NaN
- noty.js is returning undefined
- 函数将输出nan而不是数字,为什么
- jquery中出现NaN错误.已经尝试过ParseInt,但仍然不起作用
- 尝试求和时,在我的表的页脚中返回$NaN
- 我的jquery中出现NaN错误
- 金额结果为NaN
- User getSessionToken() Returning Undefined
- 使用running total时使用Javascript$NaN
- 使用jquery CounterUp提供NaN的百万值
- .scrollTop() only returning 0
- 为什么Math.pow(1,无穷大)返回NaN
- parseFloat() returning NaN
- 为什么分配给“NaN”或“未定义”会导致类型错误
- 不是每次NaN显示时都在jquery中进行乘法运算
- Javascript Math returning NaN
- JavaScript returning NaN value