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 に答える