早些时候我问过同样的话题,一个简单的计算器,但现在这个线程有点混乱,不再是最新的了。我希望对此感到恼火,但我发现一个新线程很有用。
我有一个 JavaScript 练习要做,那就是编写一个计算器脚本,它的功能与内置的 Windows (7) 几乎相同。这意味着您有一个字段可以输入一些值,而上面的一个小字段显示先前输入的值以及计算操作。
一位用户向我发送了一些我喜欢的代码以满足我的需求,因为它很简单,我尝试对其进行调整。
我目前正在努力让只有一个操作可以工作,但稍后会有其他三个主要操作,平方根等。
现在一切都很好,只有有点令人不安的计算本身没有。例如:如果您输入 5 + 5(或任何其他数字),然后单击等于,则没有任何反应。如果您再次输入任何数字(之前单击加号)然后点击等于,它会给您一个完全随机的结果,或者您之前计算的结果。
这就是我得到的:
var number = 0; //the result
var operation = ' '; //the chosen calculating operation
var temp_Val = 0; //the last entered value (for the subdisplay)
var print_equal = function () {
var displayVal = document.getElementById("display");
displayVal.value = number;
};
var num_add = function () {
var displayVal = document.getElementById("display");
temp_Val = displayVal.value; //saves the value of the display (for the subdisplay)
console.log(temp_Val); //schreibt den Wert des Displays auf die Konsole
number += parseFloat(displayVal.value); //calculates the result
operation = '+'; //saves the used operation (for the subdisplay)
print_subdisplay(); //runs the function that's building the value of the subdisplay
displayVal.value = ""; //resets the main display
};
var print_subdisplay = function () {
var subdisplayVal = document.getElementById("subdisplay");
subdisplayVal.value = temp_Val + operation; //creates a String with both the first entered value and the operation
};
HTML:
<!-- Displays -->
<input type="text" name="display" id="display" value="0" class="display">
<input type="text" name="subdisplay" id="subdisplay" class="subdisplay" readonly>
<!-- Calculating operations -->
<input type="button" onclick="print_equal()" id="equal" value="=">
<input type="button" onclick="num_add()" id="plus" value="+">
<!-- Reset -->
<input type="button" value="C" onClick="reset()" class="reset">
这是 JSFiddle:http: //jsfiddle.net/hJfFd/1/
如果你能帮助我,我会觉得非常好,因为我坐在这里试图让它工作近 4 个小时(包括研究)。提前致谢!