2013-10-15 86 views
0

我使用<input>标记创建了文本框。如果在文本框中输入任何字符。我想在控制台中打印该字符。如何找到哪个键被按下

我在谷歌搜索,大家建议jQuery.I学习JavaScript,所以没有完成Javascipt课程,我不想切换jQuery。

+0

行动为什么你不想使用jquery?在javascript中是一个强大的工具 –

+0

尽管jQuery是一个Javascript库,但它实际上更简单,在许多方面更好地学习jQuery,而不是担心纯Javascript。 jQuery存在的主要原因是Javascript在不同的浏览器中是不一致的,而jQuery使它在不同浏览器中保持一致。另外,jQuery使得许多任务比单纯的Javascript更简单和更容易。 –

+0

查看['onkeypress'](https://developer.mozilla.org/en-US/docs/Web/API/Window.onkeypress)JavaScript函数。 – andyb

回答

0

很简单的实现,它不需要任何的jQuery在所有这一切的关键。 你只需要调用下面的函数上KEYUP

function printKey(evt) { 
    var keyCode = evt.keyCode || evt.which; 
    console.log(keyCode); 
} 

你可以看到它在这里 http://jsbin.com/ikeVAbA/2/edit?html,js,output

+0

这是错误的,在IE中尝试,它总是返回65 for'a/A' – Amit

+0

它实际上并不是错误的,而是JavaScript解释事物的方式。 对于JavaScript,A/a具有相同的按键行程65.它还捕获Shift(16)或CapsLock(20)。因此,如果您需要显示大写或小写字母,请检查这两个键的键码。 – Bikas

5
function myKeyPress(e){ 

      var keynum; 

      if(window.event){ // IE     
       keynum = e.keyCode; 
      }else 
       if(e.which){ // Netscape/Firefox/Opera     
        keynum = e.which; 
       } 
      alert(String.fromCharCode(keynum)); 
     } 

和你输入

<input type="text" onkeypress="return myKeyPress(event)" /> 

你可以找到的关键代码here列表。这样,您可以识别被按下

+0

http://jsfiddle.net/marsone/PAMMR /检查控制台 – MarsOne

+0

@Dilantha你将'event'作为参数传递给'myKeyPress()'。什么是事件。如果你知道任何关于这个的教程,你可以提供给我。同时确认你的函数在'Google chrome'中不起作用。 – user2873816

+0

我们将Dom事件作为参数传递给myKeyPress。更多关于javascript的Dom事件http://www.pradosoft.com/demos/quickstart/?page=Advanced.Scripts2 – Dilantha

0

试试这个

<input type="text" onkeypress="return getCode(e)" /> 

function getCode(evt){ 
var cc = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode); 
alert(String.fromCharCode(cc)); 
}