我需要创建一个接受用户输入(整数)的表单,将该输入添加到数组中,然后对整数求和并在网页上显示它们作为文本的总数。我觉得我接近解决方案但是,当我按下提交按钮时,没有任何反应。我是Javascript的新手,这是一个课程作业。任何人都可以判断此代码是否正确或建议可能存在错误的位置?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Adding Numbers</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p><script type="javascript">
/* <![CDATA[ */
function addNums() {
var total = 0;
var intergers = new Array(5);
intergers[0] = document.forms[0].element[0].value;
intergers[1] = document.forms[0].element[1].value;
intergers[2] = document.forms[0].element[2].value;
intergers[3] = document.forms[0].element[3].value;
intergers[4] = document.forms[0].element[4].value;
for (i=0; i<intergers.length; i++) {
total += intergers[i];
}
return total;
document.write("The total for the intergers entered is " + total + "."</p>);
}
/* ]]> */
</script><strong>Please enter an interger into each of the following text boxes.<br />
Press the Submit button to see a total of all the intergers.</strong></p>
<form action="" name="intergers" onsubmit="addNums();" >
<p>1st Interger<br/>
<input type="text" name="num1" value="" size="10" /></p>
<p>2nd Interger<br/>
<input type="text" name="num2" value="" size="10" /></p>
<p>3rd Interger<br/>
<input type="text" name="num3" value="" size="10" /></p>
<p>4th Interger<br/>
<input type="text" name="num4" value="" size="10" /></p>
<p>5th Interger<br/>
<input type="text" name="num5" value="" size="10" /></p>
<p><input type="button" name="submit" value="Submit" /></p>
</form>
</body>
</html>`enter code here`
答案 0 :(得分:0)
首先,你的所有整数都有一个额外的R! : - )强>
您的代码存在的一个问题是输入值始终是字符串,JavaScript使用+
进行数字添加和字符串连接。在添加之前,您必须将所有值强制转换为数字:
for (i=0; i<intergers.length; i++) {
total += parseInt(intergers[i], 10);
}
或
for (i=0; i<intergers.length; i++) {
total += +intergers[i], 10;
}
编辑:还有其他几个问题,我刚刚意识到......其中一些问题:
type="javascript"
,只需将其删除即可。element
上没有document.forms[0]
属性。那应该是elements
。document.write
:页面已经加载(因此它会在输出之前删除整个页面),并且你试图在之后调用它return
语句(无法访问代码)。</p>
,这会导致语法错误。