仅在密钥是字母或数字时才对密钥进行警报

我想在keyup事件上显示警报,但仅当密钥是字母或数字时才显示,而不是移位,标签等。

 

或者除了tab,shift,ctrl,enter之外的任何键

谁知道怎么样?

您必须将“keyup”事件附加到文本框并在事件内部检查所需的密钥代码 :

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

如果要检查键入的字符,则keyup是错误的事件。 只有keypress事件才能可靠地告诉您有关键入字符的任何信息。 你可以这样做:

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

此附加代码记录了数字键盘中的数字,字符和数字:

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

这就是onkeypress事件的用途,只有当您按下产生值的键时它才会触发。 MDN文档 。