【发布时间】:2014-05-27 12:31:00
【问题描述】:
我有以下 Javascript:
$(function(){
$("#foo").keypress(function (event) {
if (event.keyCode == 13) {
console.log(event.ctrlKey ? "Ctrl+Enter (13)" : "Enter (13)");
}
else if (event.keyCode == 10) {
console.log(event.ctrlKey ? "Ctrl+Enter (10)" : "Enter (10)");
}
});
});
这里的Foo是一个输入框。
在 Windows 下,仅在 Windows 下 - 按住 CTRL 修饰符将 keyCode 从 13 更改为 10。因此,如果我执行 Enter vs. CTRL + Enter,我在控制台看到Enter (13)和Ctrl+Enter (10)。无论浏览器如何,Mac OS 和 Linux 都不会这样做。
这是为什么?
【问题讨论】:
-
在许多程序中它们有不同的含义。通常一个是提交热键,而另一个是换行。它也应该适用于 Linux,至少它对我有用。用 Fedora 20 和当前的 Chrome 测试了小提琴。
-
OSX 正在为我做这件事。 OSX 10.9.2 上的 Chrome 34
-
也许是与语言环境相关的事情?我让其他几个人在#jquery IRC 频道中试用它,他们报告说收到了
Ctrl+Enter (13)。
标签: javascript jquery input