我正在努力让这个工作正常进行。 dispatch()
函数似乎被触发(使用警报进行测试),但 innerHTML
行似乎不起作用。
此外,尽管 onSubmit
中存在 i++
,但 i
似乎并未增加。
这是有问题的函数:
function dispatch(passengers,i,timesArray)
{
alert('value of i is '+i);
timesArray[i]=getTime();
var avTime=getAverageTime(timesArrary);
var throughput=passengers*3600000/avTime;
if(i==0)
{
document.getElementById('output').innerHTML = 'Calculating...';
}
else
{
document.getElementById('output').innerHTML = throughput;
}
//and possibly a list (w/e)
}
这是表格:
<form method="post" action="javascript:void(0);" name="applesForm" onSubmit="dispatch(document.applesForm.numPassengers.value, num, times);i++;">
<input type="text" name="numApples" id="numPassengers" />
<br/>
<input type="submit" name="Submit" value="Press on Dispatch!"/>
</form>
这可能是无法从函数内部更改全局变量的问题吗?
或者,avTime
或 throughput
行是否有问题导致函数停止?
最佳答案
在这一行中:
<form method="post" action="javascript:void(0);" name="applesForm" onSubmit="dispatch(document.applesForm.numPassengers.value, num, times);i++;">
i
是一个全局变量,但在 dispatch()
中 i
是一个不在全局范围内的参数。在 dispatch()
内部,它位于该函数的本地范围内,并且无法在全局范围内增加。因此我认为你的 onSubmit()
应该是:
onSubmit="dispatch(document.applesForm.numPassengers.value, num, times);num++;">
关于javascript - 函数中的innerHTML(全局变量?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221957/