Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次从文本区域输入或删除值时运行函数,以立即查找总和_Javascript - Fatal编程技术网

Javascript 每次从文本区域输入或删除值时运行函数,以立即查找总和

Javascript 每次从文本区域输入或删除值时运行函数,以立即查找总和,javascript,Javascript,我编写了一个简单的JavaScript来解决加法问题(1+1或1+5+2+9,等等)。它很好用 问题是我希望它在输入新值时继续运行。一旦我输入“1+1”,它应该显示2,如果我继续输入并输入“+1”,它应该显示3,依此类推 连续运行的部分在一定程度上起作用。如果我输入“1+1”,在我按下空格键之前,总和不会显示,但它应该立即显示2,而无需按下空格键。我错过了什么 小提琴: HTML JavaScript var input = document.getElementById("addThis"

我编写了一个简单的JavaScript来解决加法问题(1+1或1+5+2+9,等等)。它很好用

问题是我希望它在输入新值时继续运行。一旦我输入“1+1”,它应该显示2,如果我继续输入并输入“+1”,它应该显示3,依此类推

连续运行的部分在一定程度上起作用。如果我输入“1+1”,在我按下空格键之前,总和不会显示,但它应该立即显示2,而无需按下空格键。我错过了什么

小提琴:

HTML


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;
}
var input=document.getElementById(“addThis”);
input.onkeypress=函数(){
var finalAnswer=0;
//获取表单输入
var processAddThis=addThis.value;
//删除问题中的所有空格
//示例问题:10+3+2
processAddThis=processAddThis.replace(//\s/g',);///10+3+2
//将数字拆分为数组
var addTheseValues=processAddThis.split(“+”);
//把数字通读一遍,把它们加起来
对于(变量i=0;i
尝试“onkeyup”事件。它适合我。

您应该在
keyup
上使用:


您应该调用函数
onkeyup
,如下所示:

input.onkeyup = function() {
    /* The rest of your current code as it already works fine */
};
按下按键时会发生
keydown
事件,紧接着是
keypress
事件。在这两段时间内,按下的键的值仍然无法计算

然后在释放钥匙时生成
keyup
事件。此时,按下的键的值可用于计算

在中,在
文本区域中输入任何值,然后查看控制台以查看三个事件之间的差异

input.onkeyup = function() {
    .....
};
input.onkeyup = function() {
    /* The rest of your current code as it already works fine */
};