我想禁用所有其他字符輸入文本輸入。
由於得到$
你必須按轉變 - 鍵和 - 鍵。我不知道你將如何獲得這樣的keyCode?
我想禁用所有其他字符輸入文本輸入。
由於得到$
你必須按轉變 - 鍵和 - 鍵。我不知道你將如何獲得這樣的keyCode?
鍵碼只與鍵相關。 $
是一個字符,通過兩個鍵,Shift鍵和4取得使用onkeydown
編輯時沒有鍵碼明確了$
:有人指出,愛德華是onkeypress
使用組合鍵,確實有鍵碼對組合。每天學習新東西:)
Here's some code,編輯自MDN提供的onkeydown
示例,以檢測按鍵鍵碼。
Here's the fiddle已更新爲Firefox-friendly,使用this S.O. post的幫助。如果你這樣做,JQuery解決方案也可以工作。
編輯器中的小提琴在firefox12中給出了這個結果:'keyCode for the key pressed:0'(on我按任何鍵..) – GitaarLAB 2012-08-08 16:30:41
@GitaarLAB有多奇怪。適用於IE和Chrome。我無法想象Firefox不會支持'onkeypress',雖然換成onkeydown可以在Firefox中工作。 – 2012-08-08 16:33:35
看看[這個S.O.線程的信息onkeypress在Firefox](http://stackoverflow.com/questions/4496910/onkeypress-event-not-working-in-firefox)懷疑它的唯一一個 – 2012-08-08 16:35:35
然後不要使用這種方式來解決你的問題:因爲你無法預測每個鍵盤佈局總是會有$ -sign作爲shift + 4輸入。
你仍然可以得到keycode 4,並檢查是否按下了shift,但是你不能確定這一點!
因此最好是簡單地替換字段中的所有非法字符(在提交數據之前)。想一想:str.replace()
您還可以在輸入框的onkeyup事件中檢查您的非法字符集,在您輸入時有效地替換所有非法字符!
喜歡:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
這應該做你想做的。
請注意:您不應該信任瀏覽器輸入,並且仍然應該在您的接收腳本中過濾此輸入!
祝您好運!
+1感謝您的支持! – 2012-08-08 16:21:30
沒有爲$
無鑰匙代碼,因爲它不是一個有效的密鑰 - 它通過某種轉換器來訪問。
通常,您將執行檢查以查看移位器是否處於活動狀態,並偵聽相關密鑰上的keypress
事件。事情是這樣的一個QWERTY佈局在您的實例:
var shiftPressed = false;
$(window).keydown(function(e) {
if(e.which == 16) { shiftPressed = true; }
if(e.which == 52 && shiftPressed)
{
// Do whatever here...
}
});
$(window).keyup(function(e) {
if(e.which == 16) { shiftPressed = false; }
});
onkeypress事件 - Unicode字符代碼是:36
的onkeydown - Unicode的KEY碼爲:52
的可能的複製[什麼JavaScript KeyCodes?](http://stackoverflow.com/questions/5603195/what-are-the-javascript-keycodes) – 2017-02-03 07:39:03