添加使用现有功能的按键事件
Adding keypress Events that use an existing function
我使用了一个在点击事件时激活的功能。我想使用按键事件做同样的事情。
function addToText(target) {
var exp = target.target;
//alert(exp.value);
if (newExp) {
//clearText();
document.getElementById("expression").value = exp.value;
newExp=false;
}
else
document.getElementById("expression").value = document.getElementById("expression").value + exp.value;
}
这是使用的函数。我如何修改它以也用于按键事件。目前,它最初不起作用(对于按键事件)。但是点击一次后,任何按键 returns 与之前点击的数字相同。
完整代码在这里:http://codepen.io/jpninanjohn/pen/JXVpYb?editors=1010
你可以使用这个功能-
window.onkeyup = function(e) {
var key = e.keyCode ? e.keyCode : e.which;
document.getElementById("expression").value += key-48; //for getting the number
alert(key);
if (key == 38) {
//whatever
}else if (key == 40) {
// whatever
}
}
source
并且您需要将 + 添加到 =
document.getElementById("expression").value+=
而不是-
document.getElementById("expression").value=
这是你的最终解决方案,我测试 charcode 是否在 48 和 57 之间,它是什么意思,数字在 0 和 9 之间。
document.addEventListener('keypress', function(e){
if (e.which >= 48 && e.which <= 57)
document.getElementById("expression").value+= String.fromCharCode(e.which);
});
您必须为 keyPress 事件添加不同的函数,因为 keypress 事件获取按下的键的值不同,而不是 target.target
function addToTextKeypress(event) {
var exp = String.fromCharCode(event.keyCode);
//alert(exp);
if (newExp) {
//clearText();
document.getElementById("expression").value = exp;
newExp=false;
}
else
document.getElementById("expression").value = document.getElementById("expression").value + exp;
}
稍后您需要删除 exp.value,因为它具有直接值
我使用了一个在点击事件时激活的功能。我想使用按键事件做同样的事情。
function addToText(target) {
var exp = target.target;
//alert(exp.value);
if (newExp) {
//clearText();
document.getElementById("expression").value = exp.value;
newExp=false;
}
else
document.getElementById("expression").value = document.getElementById("expression").value + exp.value;
}
这是使用的函数。我如何修改它以也用于按键事件。目前,它最初不起作用(对于按键事件)。但是点击一次后,任何按键 returns 与之前点击的数字相同。
完整代码在这里:http://codepen.io/jpninanjohn/pen/JXVpYb?editors=1010
你可以使用这个功能-
window.onkeyup = function(e) {
var key = e.keyCode ? e.keyCode : e.which;
document.getElementById("expression").value += key-48; //for getting the number
alert(key);
if (key == 38) {
//whatever
}else if (key == 40) {
// whatever
}
}
source
并且您需要将 + 添加到 =
document.getElementById("expression").value+=
而不是-
document.getElementById("expression").value=
这是你的最终解决方案,我测试 charcode 是否在 48 和 57 之间,它是什么意思,数字在 0 和 9 之间。
document.addEventListener('keypress', function(e){
if (e.which >= 48 && e.which <= 57)
document.getElementById("expression").value+= String.fromCharCode(e.which);
});
您必须为 keyPress 事件添加不同的函数,因为 keypress 事件获取按下的键的值不同,而不是 target.target
function addToTextKeypress(event) {
var exp = String.fromCharCode(event.keyCode);
//alert(exp);
if (newExp) {
//clearText();
document.getElementById("expression").value = exp;
newExp=false;
}
else
document.getElementById("expression").value = document.getElementById("expression").value + exp;
}
稍后您需要删除 exp.value,因为它具有直接值