要想完成这个案例,首先要把计算器的界面实现出来。方法是先创建一个表单,然后插入一个五行五列的一个表格,按照要实现的界面要求进行单元格的合并、文本字段以及按钮的插入,具体方法就不说了,可以用代码实现,也可以直接在“设计模式”中插入(需要注意的是文本字段以及各按钮一定要设置其各自的Id值和Name值,当然还要定义各自的onClick事件。至于原因接下来会讲到)。
页面设置好之后,就是实现数字之间的加减乘除运算了,这里就要用到JavaScript的内容了。首先在<head></head>标签中插入<script></script>标签,后面用到的定义变量及函数都是在这对标签里完成的。要想实现运算和输出首先就要明确各部分实现的功能,针对该案例我将整个计算器大致划分为六个部分,然后定义他们的事件。基本上可以分为:
一、文本字段用于输出结果。可将其定义为:<input name="result" type="text" id="result" onclick="getText" size="15" maxlength="15" />
二、数字键可以定义一个相同的onClick事件,如:<input type="button" name="num7" id="num7" value=" 7 " onclick="getNum('7')"/>
三、运算符分为一类,可将其定义成: <input type="button" name="b6" id="b6" value="+/-" onclick="getOperator('+/-')" />
四、等于号用于输出结果。可以这样子定义:<input type="button" name="b20" id="b20" value=" = " onclick="getResult()" />
五、还有就是“清零”按钮,我是这样定义的:input type="button" name="b1" id="b1" value=" C " onclick="qc()"/>
六、最后一个按钮是“清楚上一位”按钮,和“清零”按钮不同的是它只是清楚数字的最后一位,而“清零”按钮是将输入的数字全部清除显示零。可定义为:<input type="button" name="b2" id="b2" value=" CE " onclick="qclast()"/>
划分好功能部分之后,就要想办法实现了,首先可以在<script></script>标签之间定义五个全局变量,使用var定义的。五个变量分别为:num1,num2,initData,opstr,以及equal。然后就是定义函数了,这里一共用到了七个function函数,分别是: function showData(用来显示数据),function getNum(用来获取数值),function getOperator(用来获取操作符),function getResult()(通过等于号获取结果),function cal(num1,num2,opstr)(实现数字间的加减乘除运算),function qc()(实现清零功能),function qclast()(完成清除上一位功能)。之所以上面提到要定义各文本字段以及按钮的Id值主要就是为了方便被引用或者赋值,还有就是对其传参。
下面就是我写的代码和完成的效果,可以参考一下或者帮忙指出错误:
如有不足还望指出,会尽快改正的~