我制作了一个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;
}
答案 0 :(得分: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;
}