【发布时间】:2014-04-21 11:11:56
【问题描述】:
我有一个带有文本框的 HTML 表单,您可以在其中输入“1+2+8”之类的字符串,它会为您提供数字的总数。
我的脚本旨在添加数组“num”的所有数字并提醒该值。问题是警报显示 NAN 而不是总数。 num 中的值是浮点数,但警报仍然给出 NaN。 我看过this question,但这不是同一个问题。 这可能是什么原因造成的?
这里是 HTML/JS
<html>
<head>
<script type="text/javascript">
function handleClick(event)
{
alert(this.textBox1.value);
var num = this.textBox1.value.split("+");
//convert string array to numbers
for(var i=0; i<num.length; i++)
{
num[i] = +num[i];
}
// add up the values
for(var i=0; i<num.length; i++)
{
var total = i + total;
}
alert(total); //Displays NaN instead of total
event.preventDefault(); // disable normal form submit behavior
return false; // prevent further bubbling of event
}
function doit()
{
document.forms.myform.addEventListener("submit", handleClick, true);
return true;
}
</script>
</head>
<body onload="doit()">
<form name="myform">
<div>
<textarea name="textBox1" rows="10" cols="80">
1+1
</textarea>
</div>
<input type="submit" value="Update"/>
</form>
</body>
</html>
【问题讨论】:
-
在循环的第一次迭代中,
i + total是0 + undefined,即NaN。因此,任何其他操作都会导致NaN。你必须用一个有意义的值初始化i。
标签: javascript html