我使用了一个在点击事件中激活的功能。我想使用按键事件做同样的事情。
notify
这是使用的功能。如何修改它以用于按键事件。目前,它最初不起作用(对于按键事件)。但是在点击一次之后,任何按键都会返回与之前点击过的数字相同的数字。
此处的完整代码:http://codepen.io/jpninanjohn/pen/JXVpYb?editors=1010
答案 0 :(得分:2)
这是你的最终解决方案,我测试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);
});
答案 1 :(得分:0)
您可以使用此功能 -
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
}
}
您需要将+添加到=
document.getElementById("expression").value+=
而不是 -
document.getElementById("expression").value=
答案 2 :(得分:0)
你必须为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,因为它具有直接值