2013-10-15 137 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)); 
}