1

我做了一个 Javascript 计算器,我试图弄清楚在按下相等按钮后如何擦除结果的值,所以下一个计算不会干扰前面的计算。例如,在计算器中输入2+2,然后按等于。然后,尝试做8+8。看看你是怎么得到48的?我希望在函数启动之前清除该值。

这是 jsFiddle 上的计算器 :: http://jsfiddle.net/MatthewKosloski/J5bwP/

var result = document.calc.result;

function runNum(x) {
result.value += x;
}
function runPlus() {
result.value += "+";
}
function runSubtract() {
result.value += "-";
}
function runMultiply() {
result.value += "*";
}
function runDivide() {
result.value += "/";
}
function runClear() {
result.value = "";
}
function runDec() {
result.value += ".";
}
function runNegate() {
result.value = result.value - (result.value * 2);
}
function theAnswer() {
var evalo = eval(result.value);
result.value = evalo;
}
4

1 回答 1

0

jsFiddle Demo

我肯定会建议改变一些事情。比如eval用来做数学,或者使用内联javascript。除了这些之外,为了在输入新计算时清除计算器,我建议使用这样的东西:

var reset = false;
function clear(){
 if(reset){
  result.value = "";
  reset = false;
 }

然后在您的方法中应用此逻辑,例如

function runNum(x) {
 clear();
 result.value += x;
}

并在等号按钮中设置重置标志

function theAnswer() {
 var evalo = eval(result.value);
 result.value = evalo;
 reset = true;
}
于 2013-07-12T22:06:01.700 回答