我需要一些简单的计算器帮助我使用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="">
我的代码无效,实际上没有响应任何内容,我没有看到任何错误,所以我可以调试......如果你在这里看到我的错误,谁能告诉我?我已经尝试了数百种组合,但没有调试控制台或其他东西。
答案 0 :(得分:2)
var w = document.getElementById("resul").value;
这不允许您设置W,然后自己进行<input/>
更新。您可以改为执行以下操作之一。
设置w
后document.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会将输入值视为字符串,然后将+
解释为字符串连接,例如。
答案 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>