确定JavaScript e.keyCode是否为可打印(非控制)字符
我只想知道对应于可键入字符的JavaScript keyCode
的范围; 或者可选的,不可键入(控制)字符的范围,如退格,转义,命令,移位等,所以我可以忽略它们。
我问的原因是调用String.fromCharCode()
导致控制键奇怪的字符。 例如,我得到“[”为左侧的命令,“%”为左侧的箭头。 这样的古怪。
Keydown会给你所按的键码,没有任何修改。
$("#keypresser").keydown(function(e){ var keycode = e.keyCode; var valid = (keycode > 47 && keycode < 58) || // number keys keycode == 32 || keycode == 13 || // spacebar & return key(s) (if you want to allow carriage returns) (keycode > 64 && keycode < 91) || // letter keys (keycode > 95 && keycode < 112) || // numpad keys (keycode > 185 && keycode < 193) || // ;=,-./` (in order) (keycode > 218 && keycode < 223); // [\]' (in order) return valid; });
只有数字键,字母键和空格键具有与String.fromCharCode
相关的键码,因为它使用Unicode值。
按键将是input文本的charCode表示forms。 请注意,如果由于按键没有“打印”文本,则此事件不会触发。
$("#keypresser").keypress(function(e){ var charcode = e.charCode; var char = String.fromCharCode(charcode); console.log(char); });
http://jsfiddle.net/LZs2D/1/将演示如何工作。;
KeyUp的行为与KeyDown类似。
这篇文章有一个Javascript
中的keyCodes
列表:
http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes