按下'输入',对输入求和并清除它

时间:2017-12-09 18:18:28

标签: javascript

我正在学习JS的开始。我试图创建一个页面,用户可以将数字放在文本字段中。用户可以按Enter键添加另一个号码。当用户按下输入时,需要清除输入字段

输入的金额必须加在一起,其总数必须显示在第二个文本框中。

我的HTML:

<input type="text" id="input">
<p>Uw totaal:</p>
<input type="text" id="output">

我的JS:

input = document.getElementById("input");
        input.onkeypress = function(event) {
            ceckKey(event);
        };

        function ceckKey(e) {
            // check for enter: e.key is for Firefox
            // if true, make input empty
            if (e.keyCode == 13 || e.key == 13) {
                input.value = "";
            }
            var number = +input.value;
            return number;
        }

        var total = 0
        total += checkKey();
        document.getElementById("output").value = total;

按键适用于每个浏览器。问题是我无法对数字求和。如果我把它放在按键功能中,每次再次按回车键时都会清除该号码。

我希望你们能帮忙!

5 个答案:

答案 0 :(得分:1)

获取值之前清除它。

&#13;
&#13;
var input = document.getElementById("input");
var output = document.getElementById("output");
var total = 0;

input.onkeypress = function(e) {
  if (e.keyCode == 13 ||  e.key == 13) {
    total += +input.value;
    output.value = total;
    input.value = "";
  }
};
&#13;
<input type="number" id="input">
<p>Uw totaal:</p>
<input type="number" id="output">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

给这一点 -

 var total = 0;
input = document.getElementById("input");
output = document.getElementById("output");
input.onkeypress = function(e) {
  total = total + input.value * 1;
  if(e.keyCode == 13) {
  	input.value = "";
	}
  output.value = total;
};
<input type="text" id="input">
<p>Uw totaal:</p>
<input type="text" id="output">

嘿,欢迎来到JS!

答案 2 :(得分:0)

您过早清除输入字段。

 var number = 0
 function ceckKey(e) {
        // check for enter: e.key is for Firefox
        // if true, make input empty
        if (e.keyCode == 13 || e.key == 13) {
            number += input.value;
            input.value = "";
        }
        return number;
    }

    document.getElementById("output").value = number;

请注意,您的number变量可能未在checkKey函数内声明。问候

答案 3 :(得分:0)

您正在更新ceckKey函数之外的输出元素。

此更新不是自动的。你必须触发它。 另外,请仔细检查该功能。回调可以返回一个值,但使用dame函数进行回调并获取输出内容看起来不太好。

答案 4 :(得分:0)

在计算总数之前,您正在清除输入值。我已经更新了你的代码,按照你的意愿工作。

input = document.getElementById("input");
output = document.getElementById("output");
input.onkeypress = function(event) {
    checkKey(event);
};
function checkKey(e) {
  // check for enter: e.key is for Firefox
  // if true, make input empty
  if (e.keyCode == 13 || e.key == 13) {
    // Note : in the begining the output text box is empty, so while output is empty i have assign 0 as its value.
    outputValue = (output.value == '') ? 0 : output.value;
    total = parseInt(outputValue) + parseInt(input.value);
    input.value = "";

    // To update the total in output text box
    document.getElementById("output").value = total;

  }
}