我正在学习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;
按键适用于每个浏览器。问题是我无法对数字求和。如果我把它放在按键功能中,每次再次按回车键时都会清除该号码。
我希望你们能帮忙!
答案 0 :(得分:1)
获取值之前清除它。
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;
答案 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;
}
}