光学工程 校园招聘:请教javascript计数器的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 10:40:14
初学JAVASCRIPT,想用javascript实现一个简单的Taxi模拟计费系统,代码如下,测试时,第一次测试没有问题,重置后再测试,发现那个计数器在原来的基础上计数,而不是从零开始计数.请大家帮帮忙,在线等.

<script type="text/javascript">
var sec=0
var num=0
var i=0
var temp=0
var pre=0
function start()
{
num=document.forms[0].num.value
if(num<1||num>4){
alert("乘客总数应该在1到4之间");
} else if(i>=num){
alert("对不起,乘客们都已经下车!")
} else {
jifei();
}
}
function jifei() {
document.forms[0].display.value=sec
go=setTimeout("jifei()",1000)
sec++
}
function stop()
{
var next=sec;
clearTimeout(go);
Checkpay(i,pre,next,temp);
document.forms[1].elements[i].value=pay;
temp=pay;
pre=next;
i++;
alert("乘客"+i+": 你好,你应付"+pay+"元钱");
}
function Checkpay(i,pre,next,temp) {
pay=temp+(next-pre)/(num-i);
}
function reset()
{
window.location.reload()
}
function over1(test)
{document.getElementById('over1').style.background=test}
function out1(test)
{document.getElementById('over1').style.background=test}
function over2(test)
{document.getElementById('over2').style.background=test}
function out2(test)
{document.getElementById('over2').style.background=test}
function over3(test)
{document.getElementById('over3').style.background=test}
function out3(test)
{document.getElementById('over3').style.background=test}
</script>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</head>
<body>
<table>
<h1>欢迎使用Taxi计费系统</h1>
<form name="form1">
<tr><td><p>请输入乘车人数:</p></td>
<td><input type="text" name="num" size="22" value="0"></td><td>(1-4人)</td>
</tr>
<tr><td><p>计费表:</p></td>
<td><input type="text" name="display"size="22"value="0"></td><td><p>元</p></td>
</tr>
<tr><td><span id="over1" onmouseover="over1('red')" onmouseout="out1('black')" onclick="start()">开车</span>
<span id="over2" onmouseover="over2('red')" onmouseout="out2('black')" onclick="stop()">下车</span>
<span id="over3" onmouseover="over3('red')" onmouseout="out3('black')" onclick="reset()">重置</span></td>
</tr>
</form>
<tr>
<td><p> </p></td>
<td><p> </p></td>
</tr>
<form name="form2">
<tr><td><p>各个乘客应付费为:</p></td></tr>
<tr><td><p>乘客1:</p></td>
<td><input type="text" name="pay1" size="22" value="0"></td><td><p>元</p></td>
</tr>
<tr>
<td><p>乘客2:</p></td>
<td><input type="text" name="pay2" size="22" value="0"></td><td><p>元</p></td>
</tr>
<tr>
<td><p>乘客3:</p></td>
<td><input type="text" name="pay3" size="22" value="0"></td><td><p>元</p></td>
</tr>
<tr>
<td><p>乘客4:</p></td>
<td><input type="text" name="pay4" size="22" value="0"></td><td><p>元</p></td>
</tr>
</form>
<table width="100%" border="0">
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>

有冲突,把函数reset()改名~

把这些放在start()里,因为reload后没有运行函数外的清零

sec=0
num=0
i=0
temp=0
pre=0

楼上的,这样是不可以的,这样会发现计费表的那个文本框会一直为零