我的代码有什么问题吗?我创建了 6 个文本框。前五个框用于用户想要的任何数字,最后一个框应该显示数字的平均值。我将非常感谢任何帮助!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/DTD/xhtml1.0-transitional.dtd"
<html xmlns="http://www.w3.org/1999/xhtml"
<head>
<title>Calc Average</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
/* <![CDATA[ */
var numberOne= 0;
var numberTwo = 0;
var numberThree = 0;
var numberFour = 0;
var numberFive = 0;
var calcResult = 0;
function calcAvg() {
performCalc(numberOne, numberTwo, numberThree, numberFour, numberFive);
return calcResult;
calcResult = document.numbers.averageResult.value;
}
function performCalc() {
calcResult = parseInt(numberOne + numberTwo + numberThree + numberFour + numberFive) / 5;
return calcAvg();
}
/* ]]> */
</script>
</head>
<body>
<form action="" name="numbers">
<table>
<tr>
<td>Number One</td>
<td>
<input type="text"
name="numOne" value="0" size="5"
onchange="var numberOne=calcAvg(document.numbers.numOne.value);" /></td>
</tr>
<tr>
<td>Number Two</td>
<td>
<input type="text"
name="numTwo" value="0" size="5"
onchange="var numberTwo=calcAvg(document.numbers.numTwo.value);" /></td>
</tr>
<tr>
<td>Number Three</td>
<td>
<input type="text"
name="numThree" value="0" size="5"
onchange="var numberThree=calcAvg(document.numbers.numThree.value);" /></td>
</tr>
<tr>
<td>Number Four</td>
<td>
<input type="text"
name="numFour" value="0" size="5"
onchange="var numberThree=calcAvg(document.numbers.numFour.value);" /></td>
</tr>
<tr>
<td>Number Five</td>
<td>
<input type="text"
name="numFive" value="0" size="5"
onchange="var numberFour=calcAvg(document.numbers.numFive.value);" /></td>
</tr>
<tr>
<td>Average of Five Numbers</td>
<td>
<input type="text"
name="averageResult" value="0" size="5"
onchange="calcAvg()" /></td>
</tr>
</table>
</body>
</html>
最佳答案
您正在递归调用 calcAvg。
onchange 调用“calcAvg”,然后 calcAvg 调用performCalc,然后performCalc 调用calcAvg,依此类推。
下面的代码应该适合您:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/DTD/xhtml1.0-transitional.dtd"
<html xmlns="http://www.w3.org/1999/xhtml"
<head>
<title>Calc Average</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="" name="numbers">
<table>
<tr>
<td>Number One</td>
<td>
<input type="text"
name="numOne" value="0" size="5"
onchange="calcAvg();" /></td>
</tr>
<tr>
<td>Number Two</td>
<td>
<input type="text"
name="numTwo" value="0" size="5"
onchange="calcAvg();" /></td>
</tr>
<tr>
<td>Number Three</td>
<td>
<input type="text"
name="numThree" value="0" size="5"
onchange="calcAvg();" /></td>
</tr>
<tr>
<td>Number Four</td>
<td>
<input type="text"
name="numFour" value="0" size="5"
onchange="calcAvg();" /></td>
</tr>
<tr>
<td>Number Five</td>
<td>
<input type="text"
name="numFive" value="0" size="5"
onchange="calcAvg();" /></td>
</tr>
<tr>
<td>Average of Five Numbers</td>
<td>
<input type="text" name="averageResult" value="0" size="5" /></td>
</tr>
</table>
</body>
<script type="text/javascript">
/* <![CDATA[ */
function calcAvg() {
var numberOne= document.numbers.numOne.value;
var numberTwo = document.numbers.numTwo.value;
var numberThree = document.numbers.numThree.value;
var numberFour = document.numbers.numFour.value;
var numberFive = document.numbers.numFive.value;
var calcResult = 0;
calcResult = (parseInt(numberOne) + parseInt(numberTwo) + parseInt(numberThree) + parseInt(numberFour) + parseInt(numberFive)) / 5;
document.numbers.averageResult.value = calcResult;
}
/* ]]> */
</script>
</html>
关于javascript - JScript 代码不会平均数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18650360/