关于Javascript问题,郁闷!

eArt 2010-01-06 11:19:48
各位,请帮忙看下以下代码有什么错误,我找了半天也没发现错误,但运行后却不能正常执行。谢谢!

----
<html>
<head>
<title>JavaScript计算器</title>
</head>

<script language="JavaScript">
var curState;
var curOper;
var num1;
var preOper;

function setStartState()
{
curState="beStart";
num1=0;
curOper="start";
preOper=false;
}

function addNum(i)
{
if(preOper)
{
cal.total.value=i;
preOper=false;

}
else
{
if(cal.total.value=="0")
{
cal.total.value=i;
curState ="beInteger";
}
else
{
cal.total.value+=i;
}
}

}
function addPoint()
{
if(curState=="beStart"||curState=="beInteger")
{
cal.total.value+=".";
curState="beFloat";
}
}
function cleartext()
{
cal.total.value="0";
curState="beStart";
curOper"start";
}
function count()
{
if(curOper!="start")
{
switch(curOper)
{
case "+":
num1=parseFloat(num1)+parseFloat(cal.total.value);
break;

case "-":
num1=parseFloat(num1)-parseFloat(cal.total.value);
break;

case "*":
num1=parseFloat(num1)*parseFloat(cal.total.value);
break;

case "/":
num1=parseFloat(num1)/parseFloat(cal.total.value);
break;
}
cal.total.value=num1;
preOper=true;
}
curOper="start";

}

function setOper(oper)
{
preOper = true;
if(curOper = "start")
{
num1=0+cal.total.value;
curOper = oper;
}
else
{
count();
curOper=oper;
}
}

function useFunc(func)
{
switch(func)
{
case "sin":
cal.total.value=Math.sin(cal.total.value);
preOper=true;
break;

case "cos":
cal.total.value = Math.cos(cal.total.value);
proOper=true;
break;

case "asin":
cal.total.value = Math.asin(cal.total.value);
proOper=true;
break;

case "acos":
cal.total.value = Math.acos(cal.total.value);
proOper=true;
break;

case "tan":
cal.total.value = Math.tan(cal.total.value);
proOper=true;
break;

case "atan":
cal.total.value = Math.atan(cal.total.value);
proOper=true;
break;

case "log":
cal.total.value = Math.log(cal.total.value);
proOper=true;
break;

case "exp":
cal.total.value = Math.exp(cal.total.value);
proOper=true;
break;

case "sqrt":
cal.total.value = Math.sqrt(cal.total.value);
proOper=true;
break;

case "1/x":
cal.total.value = 1/cal.total.value;
proOper=true;
break;


}
}
</script>

<body onload="setStartState()">
<font size="6">JavaScript计算器</font>
<form name="cal">

<table border="2" align="left">
<tr align="center">
<td colspan="6">
<input type="text" name="total" size="40" value="0">
</td>
</tr>
<tr align="center">
<td>
<input type="button" value="sin " onclick="useFunc('sin')">
</td>
<td>
<input type="button" value="cos " onclick="useFunc('cos')">
</td>
<td>
<input type="button" value="1 " onclick="addNum('1')">
</td>
<td>
<input type="button" value="2 " onclick="addNum('2')">
</td>
<td>
<input type="button" value="3 " onclick="addNum('3')">
</td>
<td>
<input type="button" value="+ " onclick="setOper('+')">
</td>
</tr>
<tr align="center">
<td>
<input type="button" value="asin" onclick="useFunc('asin')">
</td>
<td>
<input type="button" value="acos" onclick="useFunc('acos')">
</td>
<td>
<input type="button" value="4 " onclick="addNum('4')">
</td>
<td>
<input type="button" value="5 " onclick="addNum('5')">
</td>
<td>
<input type="button" value="6 " onclick="addNum('6')">
</td>
<td>
<input type="button" value="- " onclick="setOper('-')">
</td>
</tr>
<tr align="center">
<td>
<input type="button" value="tan " onclick="useFunc('tan')">
</td>
<td>
<input type="button" value="atan" onclick="useFunc('atan')">
</td>
<td>
<input type="button" value="7 " onclick="addNum('7')">
</td>
<td>
<input type="button" value="8 " onclick="addNum('8')">
</td>
<td>
<input type="button" value="9 " onclick="addNum('9')">
</td>
<td>
<input type="button" value="* " onclick="setOper('*')">
</td>
</tr>
<tr align="center">
<td>
<input type="button" value="log " onclick="useFunc('log')">
</td>
<td>
<input type="button" value="exp " onclick="useFunc('exp')">
</td>
<td>
<input type="button" value="0 " onclick="addNum('0')">
</td>
<td>
<input type="button" value=". " onclick="addPoint()">
</td>
<td>
<input type="button" value="= " onclick="count()">
</td>
<td>
<input type="button" value="/ " onclick="setOper('/')">
</td>
</tr>
<tr align="center">
<td>
<input type="button" value="sqrt" onclick="useFunc('sqrt')">
</td>
<td>
<input type="button" value="1/x " onclick="useFunc('1/x')">
</td>
<td>
<input type="button" value=" pi " onclick="cal.total.value = Math.PI">
</td>
<td>
<input type="button" value=" E " onclick="cal.total.value = Math.E">
</td>
<td colspan="2">
<input type="button" value=" 清 除 " onclick="cleartext()">
</td>
</tr>
</table>
</form>



</body>

</html>
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzone 2010-01-06
  • 打赏
  • 举报
回复
改这里就对了function cleartext()
{
cal.total.value="0";
curState="beStart";
curOper="start";
}
eArt 2010-01-06
  • 打赏
  • 举报
回复
楼上的你太有才了。谢谢你,好眼力!!!
浪尖赏花 2010-01-06
  • 打赏
  • 举报
回复
curOper"start";

====>

curOper = "start";
eArt 2010-01-06
  • 打赏
  • 举报
回复
type="button" value=" E " onclick="cal.total.value = Math.E">
</td>
<td colspan="2">
<input type="button" value=" 清 除 " onclick="cleartext()">
</td>
</tr>
</table>
</form>



</body>

</html>

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧