我怎么知道一个特定的事件.keyCode对应一个字符,而不是一个命令键(如箭头、tab或enter)
How do I know a particular event.keyCode corresponds to a character and not a command key (such as arrows, tab or enter)
我使用javascript/jQuery..在input[type='text']
的keydown
上,我收到一个密钥码。我需要确定它是字符代码还是命令代码,因为我需要知道输入是否会改变。我不能使用change
事件,因为这个事件是分离的,直到元素失去焦点。
与其摆弄键码,不如在内存中保存一个值的缓存副本,并在每次按下键时进行比较(必要时进行更新):
var the_value = $('#the-input').val();
$('#the-input').keyup(function(ev) {
if (the_value != $(this).val()) {
the_value = $(this).val();
// input has changed, act on event here
}
});
您应该能够在您的事件处理程序中使用event.ctrlKey
, event.altKey
和event.shiftKey
等。
还检查Ascii表,您可以检查keycode是否在33 &127,例如,检查a-z,数字和标点符号(遗漏空格,del, enter等)
switch (e.keyCode) {
// up
case 38:
break;
// down
case 40:
break;
// esc
case 27:
break;
// enter
case 13:
break;
}
寻找javascript关键字在谷歌获得完整的列表。javascript键码不完全跨浏览器一致
简短的回答是,您根本无法可靠地检测击键是否对应于在keydown
或keyup
事件(仅与物理键有关)中键入可打印字符。对于任何与检测字符类型有关的操作,请使用keypress
事件。
然而,听起来你真正需要的是HTML5输入事件。请看我的回答:
只捕获改变输入的按键?
相关文章:
- Javascript不能在一个命令中使用函数参数
- 最小化CSS/JS文件,并使用命令行创建一个文件
- 如何在bash中的另一个命令中使用一个命令的结果
- 我如何只用一个命令让咕噜咕噜观看和实时加载 - Gruntjs
- iMacros 循环然后停止,然后添加另一个命令
- 有没有一个命令是javascript,允许我重复一行代码一定次数
- JSF 中的一个命令按钮中的两个操作
- PHP计时器等待30秒,然后运行一个命令
- 谷歌Chrome控制台在特定网站的每个页面上都运行一个命令
- Jquery循环插件.上一个命令不起作用
- js -& #160;只执行一个命令
- 让某些JS代码等到另一个命令完成后才执行
- 在javascript中给按钮分配一个命令参数
- 主干:如何用一个命令更新所有模型的属性
- 我怎么知道一个特定的事件.keyCode对应一个字符,而不是一个命令键(如箭头、tab或enter)
- Javascript-有没有一种方法可以通过一个命令来销毁数组中的所有元素
- 等待Google Earth完成加载,然后在matlab中执行下一个命令
- 使用一个命令安装所有grunt-devDependencies
- 如何使用一个命令将数组保存到文件中,并使用 NodeJS 中的另一个命令将该文件保存到数组中
- 如何知道多个异步调用何时完成,然后调用另一个命令