2011-03-11 37 views

回答

28

您將有一個「KEYUP」事件附加到文本框和事件檢查內爲keycodes你想要的:

$("#hi").bind("keyup", function(e) { 
     //on letter number 
     if (e.which <= 90 && e.which >= 48) 
     { 
      alert('hello'); 
     } 
}); 
+1

使用您的鍵盤數字時不起作用。 http://www.javascripter.net/faq/keycodes.htm – dreagan

1
<input id="textbox" type='text' id='hi /> 

$("#textbox").keypress(function (e){ 
    if (e.which <= 90 && e.which >= 48) 
     { 
      alert('Letter or number click'); 
     } 
}); 
11

如果你想檢查哪些字符被鍵入,keyup是錯誤的事件。只有keypress事件可以可靠地告訴你任何關於輸入的字符。可以按如下方式做到這一點:

$("#hi").keypress(function(e) { 
    var charTyped = String.fromCharCode(e.which); 
    if (/[a-z\d]/i.test(charTyped)) { 
     alert("Letter or number typed: " + charTyped); 
    } 
}); 
+0

爲什麼keypress事件更可靠? – Kumar

+1

@Kumar:由於'keyup'和'keydown'關注哪個物理鍵被按下,而'keypress'則關注按鍵導致的文本輸入。 –

0
<input type="text" id="hi" onkeypress="keyPress()" /> 

function keyPress(e){ 
    var key, x = e || window.event; key = (x.keyCode || x.which); 
    if(key <= 90 && key >= 48){ 
    alert("Key pressed"); 
    } 
} 
0

這附加碼佔數字,字符和數字鍵盤的數字:

document.querySelector(selector).addEventListener('keypress', function() { 
    if (e.which <= 90 && e.which >= 48 || e.which >= 96 && e.which <= 105) { 
    alert('keycode ' + e.which + ' triggered this event'); 
    //do whatever 
    } 
}); 
相關問題