仅在密钥是字母或数字时才对密钥进行警报
我想在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文档 。