2014-04-10 24 views
0

如果我有一個文本框,如何確定導致文本框輸入事件觸發的鍵?

<input id='Sub' type='text'> 

我可以每個

sub = document.getElementById('Sub'); 
sub.addEventListener('input', function(e) { 
    // here the contents of the textbox is accessible via this.value 
    ... 
}, false); 

我想輸入的變化時間捕捉識別時退格刪除輸入的原因射擊,所以我可以專門處理它們。據我所知,ethis都沒有公開被按下的鍵以引發輸入事件。有什麼方法可以找出關鍵是什麼?

+0

因爲許多事件,比如糊oninput事件觸發,改變等,它不具有的keyCode /因爲對於觸發事件的許多操作來說,如果有這樣的事情是沒有意義的,如果需要,可以使用鍵*事件。 – adeneo

回答

1

「輸入」不是您想要捕獲的事件。你必須趕上「按鍵」事件。然後你就可以看到「e.keyCode」:

var sub = document.getElementById('Sub'); 
sub.addEventListener('keypress', function(e) { 
    console.log(e.keyCode) 
}, false); 

這裏有一個小的演示:http://jsfiddle.net/9LZ9Z/

+0

如果我想要捕捉粘貼呢? – drs

+0

但是,這不會是一個關鍵(它可以粘貼鼠標)嗎? –

+0

沒錯。我想要一個函數在輸入事件觸發時(無論是由於字符按下還是粘貼)運行,但不是來自事件。所以我想識別功能中的鍵。 – drs

相關問題