使用JavaScript计算百分比
我有一个表单,我希望用户输入几个字段,表单将计算目标的总数和百分比。我是JavaScript新手,不知道如何计算百分比。当我尝试使用JavaScript计算百分比,javascript,nan,Javascript,Nan,我有一个表单,我希望用户输入几个字段,表单将计算目标的总数和百分比。我是JavaScript新手,不知道如何计算百分比。当我尝试parseInt(总计)/parseInt(目标)*100时,我得到一个NaN错误: <html> <head> <style media="screen"> .testform INPUT { display: block; margin-bottom:
parseInt(总计)/parseInt(目标)*100时,我得到一个NaN错误:
<html>
<head>
<style media="screen">
.testform INPUT {
display: block;
margin-bottom: 10px;
border: 1px solid #212121;
height: 35px;
font-size: 16px;
}
</style>
<script type="text/javascript">
calculate = function() {
var cash = document.getElementById('a1').value;
var checks = document.getElementById('a2').value;
var coin = document.getElementById('a3').value;
var goal = document.getElementById('goalamount').value;
var total = document.getElementById('a4').value;
document.getElementById('a4').value = parseInt(cash)+parseInt(checks)+parseInt(coin);
document.getElementById('a5').value = parseInt(total)+parseInt(goal);
}
</script>
</head>
<body>
<form class="testform">
Goal amount <input id="goalamount" type="text" value="3000"/>
Cash Collected <input id="a1" type="text" />
Checks Collected <input id="a2" type="text" />
Coins Collected <input id="a3" type="text" />
Total Collected <input id="a4" type="text" name="total_amt" onblur="calculate()" />
Percent of Goal<input id="a5" type="text" name="goal_amt" />
</form>
</body>
</html>
.testform输入{
显示:块;
边缘底部:10px;
边框:1px实心#212121;
高度:35px;
字体大小:16px;
}
计算=函数(){
var cash=document.getElementById('a1')。值;
var checks=document.getElementById('a2')。值;
var coin=document.getElementById('a3')。值;
var goal=document.getElementById('goalamount').value;
var total=document.getElementById('a4')。值;
document.getElementById('a4')。value=parseInt(现金)+parseInt(支票)+parseInt(硬币);
document.getElementById('a5')。value=parseInt(总计)+parseInt(目标);
}
目标金额
收取的现金
收集的支票
收集的硬币
收集的总数
目标百分比
NaN表示“不是数字”。检查total是否可以被解析为整数,检查goal是否可以被解析为整数,并且值不是零,那么您应该是好的。我在本地环境上运行了您的代码,然后知道了抛出异常的原因。变量total是根据上面的代码从html输入元素值中检索的,但是total变量在执行行parseInt(cash)+parseInt(checks)+parseInt(coin)之前将为空字符串代码>。然后,在将空字符串解析为int之后,parseInt将返回NaN。所以您将在百分比输入框中看到NaN
有一个解决方案可以解决此问题:代码如下:
var goal = document.getElementById('goalamount').value;
document.getElementById('a4').value = parseInt(cash)+parseInt(checks)+parseInt(coin);
var total = document.getElementById('a4').value;
…Java!=JavaScriptfor您的总金额
和目标金额
输入字段将type=“text”
更改为type=“number”
。这将确保在这些字段中只输入数字。您试图在什么时候计算百分比?您将parseInt(总计)/parseInt(目标)*100
放在代码中的什么位置。我的猜测是,您得到NaN是因为您在某个点尝试parseInt(“”),这表明您提到的某个输入没有任何值,或者可能是一个不是数字的值。