1

我需要一些关于我用 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

4 回答 4

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

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

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

或者

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

此外,如果您验证您的表格,则可以获得奖励积分(这种情况下的好功能是IsNumeric()

于 2013-05-07T15:24:24.370 回答
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 会将输入值视为字符串,然后解释+为字符串连接。

示例小提琴

于 2013-05-07T15:21:49.757 回答
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");

}
}
于 2021-03-23T06:35:35.807 回答
-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>

于 2020-02-16T22:06:04.923 回答