添加使用现有功能的按键事件

时间:2016-05-16 08:20:51

标签: javascript javascript-events keyboard-events

我使用了一个在点击事件中激活的功能。我想使用按键事件做同样的事情。

notify

这是使用的功能。如何修改它以用于按键事件。目前,它最初不起作用(对于按键事件)。但是在点击一次之后,任何按键都会返回与之前点击过的数字相同的数字。

此处的完整代码:http://codepen.io/jpninanjohn/pen/JXVpYb?editors=1010

3 个答案:

答案 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
   }
}

source

您需要将+添加到=

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,因为它具有直接值