简单的javascript计算器与Switch

时间:2013-05-07 15:18:07

标签: javascript html calculator

我需要一些简单的计算器帮助我使用javascript。

js代码如下(我的老师希望我使用4种功能,用于各种操作):

<script>

            function plus(a,b) {
                return (a + b);
            }

            function minus(a,b) {
                return (a - b);
            }

            function multiply(a,b) {
                return (a * b);
            }

            function divide(a,b) {
                return (a / b);
            }

            function calc() {

                var x = document.getElementById("oper1").value;
                var y = document.getElementById("operx").value;
                var z = document.getElementById("oper2").value;
                var w = document.getElementById("resul").value;

                switch (y) {
                    case '0':
                        w = plus(x, z);
                        break;

                    case '1':
                        w = minus(x, z);
                        break;

                    case '2':
                        w = multiply(x, z);
                        break;

                    case '3':
                        w = divide(x, z);
                        break;

                    default:
                        w = "Don't really know..";
                }

            }

</script>
<input type="text" id="oper1" value="">

<select id="operx">
    <option value="0">SUMAR</option>
    <option value="1">RESTAR</option>
    <option value="2">MULTIPLICAR</option>
    <option value="3">DIVIDIR</option>
</select>

<input type="text" id="oper2" value="">
<input type="button" onClick="calc();" value="=">
<input type="text" id="resul" value="">

我的代码无效,实际上没有响应任何内容,我没有看到任何错误,所以我可以调试......如果你在这里看到我的错误,谁能告诉我?我已经尝试了数百种组合,但没有调试控制台或其他东西。

4 个答案:

答案 0 :(得分:2)

var w = document.getElementById("resul").value;

这不允许您设置W,然后自己进行<input/>更新。您可以改为执行以下操作之一。

设置wdocument.getElementById("resul").value=w;

OR

var w = document.getElementById("resul");
w.value=etc.

此外,如果您验证表单,奖励积分(此案例的好处是IsNumeric()

答案 1 :(得分:1)

JavaScript不会以您打算使用它们的方式使用指针。您必须将结果显式写回输出字段:

function calc(){
  // most of your stuff
  // just replace the var w = document ... line with just
  var w;

  // your other code

  document.getElementById("resul").value = w;
}

此外,您应该使用parseInt()parseFloat()将输入值解析为数字。如果不这样做,JavaScript会将输入值视为字符串,然后将+解释为字符串连接,例如。

Example Fiddle

答案 2 :(得分:0)

 // You can simply add button to call a function like this

 <button onclick="Calculator()">=</button>

functon Calculator(){
 var x = document.getElementById("oper1").value;
 var y = document.getElementById("operx").value;
 var z = document.getElementById("oper2").value;
           
switch(y){
case "+":
document.getElementById("resul") = x + z;
break;
case "-":
document.getElementById("resul") = x - z;
break;

case "*":
document.getElementById("resul") = x * z;
break;

case "/":
document.getElementById("resul") = x / z;
break;

case "%":
document.getElementById("resul") = x % z;
break;

Default:
alert("Choose the operator");

}
}

答案 3 :(得分:-1)

您的程序应如下所示

<script>

            function plus(a,b) {
                return (a + b);
            }

            function minus(a,b) {
                return (a - b);
            }

            function multiply(a,b) {
                return (a * b);
            }

            function divide(a,b) {
                return (a / b);
            }

            function calc() {
                var w;
                var x = document.getElementById("oper1").value;
                var y = document.getElementById("operx").value;
                var z = document.getElementById("oper2").value;
                //document.getElementById("resul").innerHTML=w;

                switch (y) {
                    case '0':
                        w = plus(x, z);
                document.getElementById("resul").innerHTML=w;
                        break;
                    case '1':
                        w = minus(x, z);
                document.getElementById("resul").innerHTML=w;
                        break;
                    case '2':
                        w = multiply(x, z);
                document.getElementById("resul").innerHTML=w;
                        break;
                    case '3':
                        w = divide(x, z);
                document.getElementById("resul").innerHTML=w;
                        break;
                    default:
                        w = "Don't really know..";
                }

            }
</script>
<input type="text" id="oper1" value="">
<select id="operx">
    <option value="0">SUMAR</option>
    <option value="1">RESTAR</option>
    <option value="2">MULTIPLICAR</option>
    <option value="3">DIVIDIR</option>
</select>
<input type="text" id="oper2" value="">
<input type="button" onClick="calc();" value="Solve"><br/><br/>
<p id="resul">The answer is : </p>