Javascript表单元素添加到数组,然后总计元素

时间:2013-10-11 21:33:52

标签: javascript arrays forms

我需要创建一个接受用户输入(整数)的表单,将该输入添加到数组中,然后对整数求和并在网页上显示它们作为文本的总数。我觉得我接近解决方案但是,当我按下提交按钮时,没有任何反应。我是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`

1 个答案:

答案 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语句(无法访问代码)。
  • 您在document.write调用中也有一个</p>,这会导致语法错误。
  • 提示:打开浏览器的开发人员工具,并始终检查控制台是否有错误。