Javascript 添加使用现有功能的按键事件
我使用了一个在点击事件时激活的功能。我想用按键事件做同样的事情Javascript 添加使用现有功能的按键事件,javascript,dom-events,keyboard-events,Javascript,Dom Events,Keyboard Events,我使用了一个在点击事件时激活的功能。我想用按键事件做同样的事情 function addToText(target) { var exp = target.target; //alert(exp.value); if (newExp) { //clearText(); document.getElementById("expression").value = exp.value; newExp=false; } else docume
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;
}
这是所使用的函数。如何修改它以同时用于按键事件。目前,它最初不起作用(对于按键事件)。但单击一次后,任何按键都会返回先前单击的数字
此处的完整代码:您可以使用此功能-
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=
这是您的最终解决方案,我测试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);
});
document.addEventListener('keypress',函数(e){
如果(e.which>=48&&e.which您必须为按键事件添加不同的函数,因为按键事件获取按键值的方式不同,而不是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,因为它有直接值var key=e.keyCode?e.keyCode:e.which;这行做什么?好的。这只在我在计算器内部某处单击后才起作用。您确定吗?我已经测试了您编辑的代码笔,即使我在计算器外部单击并开始键入,它也能起作用。是的,我再次检查了它也适用于外部点击。但为什么最初的点击???