0

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

1 回答 1

1

首先,你的所有整数都有一个额外的 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>对 document.write 的内部调用,这会导致语法错误。
  • 提示:打开浏览器的开发人员工具,并始终检查控制台是否有错误。
于 2013-10-11T21:43:06.103 回答