我编写了一个简单的 JavaScript 来解决加法问题(1 + 1 OR 1 + 5 + 2 + 9 等)。它工作正常。
问题是我希望它在输入新值时连续运行。一旦我输入“1 + 1”,它应该显示 2,如果我继续输入并输入“+ 1”,它应该显示 3,依此类推。
连续运行的部分有点工作。如果我输入“1 + 1”,则在按下空格键之前不会显示总和 --- 但它应该立即显示 2 而无需按下空格键。我错过了什么?
小提琴:http: //jsfiddle.net/z26eg/
HTML
<textarea cols="50" rows="10" id="addThis"></textarea>
<div id="sum"></div>
JavaScript
var input = document.getElementById("addThis");
input.onkeypress = function() {
var finalAnswer = 0;
// Get form input
var processAddThis = addThis.value;
// Remove all spaces in problem
// Example problem: 10 + 3 + 2
processAddThis = processAddThis.replace(/\s/g,''); // 10+3+2
// Split numbers into an array
var addTheseValues = processAddThis.split("+");
// Go through numbers and add them up
for (var i = 0; i < addTheseValues.length; i++) {
finalAnswer += Number(addTheseValues[i]);
}
// Display sum
sum.innerHTML = finalAnswer;
}