问题标签 [onkeydown]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
19806 浏览

javascript - 如何在 onkeydown 事件处理程序方法中区分大写字母和小写字母

如何在 onkeydown 事件处理程序方法中区分大写A和小写a ?上述算法触发相同的 keyCode 值。我需要在 onkeydown 中按下大写字母时检测它们。

注意:代码包含 SHIFT 键的异常。否则不允许输入大写字母。顺便说一句,我需要使用 onkeydown 进行试用。

0 投票
1 回答
1730 浏览

wpf - 用户控件中的 WPF OnKeyUp 未触发

我有带有 UserControl 的窗口。我订阅了 OnKeyUp 事件,但它没有触发。在 UserControl 构造函数中,我使用方法 this.Focus(); 但是 onkeyup 仍然没有触发。出了什么问题,我能做些什么来捕捉这个事件?

0 投票
3 回答
2606 浏览

javascript - Firefox 中的连续 onkeydown 事件

我有一个触发函数的常规 onkeydown 事件处理程序,如下所示:

它基本上可以工作,但它只捕获 Firefox 中的 1 个键。然后我必须释放它并再次按下。

谷歌浏览器为我提供了一个持续的抓取,所以我想知道这是否是我的选择。

0 投票
2 回答
9133 浏览

javascript - 在 Javascript 中捕获 onkeydown

我有一个 AS/400 CGI 应用程序的 Web 前端,它允许使用一些键(取决于页面)以及向上翻页、向下翻页等——这些被传递给底层应用F1程序F24适当地处理它们。例如,在给定的页面上,用户可以按下F3按钮或按下F3键 - 他们都将(隐藏的)CmdKey 变量设置为名称为“_K03”和值“F03”。按钮处理简单,没有问题。为了处理用户按下键盘上的实际 F 键,我有一个兼容 IE 的脚本很长时间了,它运行良好:

这不仅正确设置了 CmdKey 元素,而且还覆盖(停止)浏览器默认行为(如果有)被执行(例如,当用户按 F3 时,搜索框不会出现)。

setCmdKeyIE()函数是这样调用的:

我现在需要它来为 Firefox(以及可能的其他浏览器)工作,但我遇到了各种各样的麻烦。我最初更改了 setCmdKeyIE 函数(是的,我知道一旦它不再是 IE 特定的名称就应该更改名称,但这是我最不担心的!)以将事件作为参数(仅适用于 Firefox,我想)或使用当前行为,如果它没有通过(使用 IE)。我还添加了一些其他处理来停止 Firefox 事件传播,但它不起作用......

这是新的非工作代码 - 某个善良的灵魂可以指出我的方式错误吗?

我需要使用 Firefox 从 setCmdKeyIE 返回 false 吗?即使这个过程返回假,这是否成立?

0 投票
2 回答
4193 浏览

javascript - 如何防止光标/插入符号在输入文本元素内移动?

我正在尝试构建一个表单,其工作方式类似于 Google 搜索页面、Gmail 和其他几个页面(包括此页面 - 请参阅“提问”页面上的“标签”输入)。输入文本时,会出现一个选项列表,用户可以使用向上和向下箭头来选择他们想要的选项。

我遇到的问题是向上箭头将光标/插入符号放在字段的位置 0,而向下将它放在最后。有没有一种简单的方法可以防止它移动到开头/结尾,或者我需要在我的函数运行之前找到插入符号的位置,然后再将它重新定位到那个位置?

这是在输入元素 (onkeyup) 中输入文本时运行的函数的开始。

让我知道是否还有更多代码有用。谢谢您的帮助。

0 投票
2 回答
17032 浏览

android - onKeyDown 在服务中?(全局热键)

我基本上想要实现的是自定义全局热键,或者换句话说“当我按下某些按钮时,无论哪个程序当前处于顶部,事情都会发生”。
我认为需要服务。

我有一个快速而肮脏的测试,它只是告诉我按下了什么,如果它是活动窗口,它将起作用。

但显然,如果我更改窗口或进入文本框,它就不起作用。如果我将它直接粘贴到服务(或 imputmethodservice)中并启动所述服务,则不会发生任何事情。(可能需要一些权限?)我哪里出错了有什么建议吗?还是捕捉按下哪个按钮的更好方法?

谢谢!

0 投票
3 回答
7352 浏览

javascript - JavaScript key handling and browser compatibility

I'm working on key handling in Javascript. I have done some research and I'd like to know whether I have a correct understanding of key handling.

KeyDown/KeyUp Event The key down and key up events are supported by IE7+ and Firefox 3.5+ I didn't check the earlier versions of the browsers, but I guess that they also support these events.

Is it correct to say that each key on the keyboard will always have a keycode.

CharCode

CharCode value is available on the keypress.Majority of the keys will have the charcodes that represent the actual value. Some keys won't have a charcode associated with them. E.g. backspace, delete, arrow keys.

Am I correct to say that on the keypress the charcode will be the same as the keycode?

Order of the events

  • KeyDown
  • KeyPress
  • KeyUp

Does this order differ from browser to browser? For example I have two functions. First is bound to KeyDown event, second is bound to the KeyPress event. Calling a KeyPress event means that the KeyDown event will also be called, when I want only one of these events to work.

Finally I have been considering on using different key handling routines depending on the version browser. For example:

  • Check browser version
  • Get key handling routine depending on the browser version

This will introduce additional code, but should simplify the maintenance. Also, in the future, when I want to provide a support for a different browser, I can simply add another routine and it won't affect existing character handling routine.

So far I have been reading http://www.quirksmode.org

0 投票
2 回答
537 浏览

javascript - 如何对按键执行操作?

如果我想在ctrl按键时执行操作,我的代码可以完美运行......

但是,我只希望在我仅按下右控制按钮时激活此代码...

不起作用...如果有正确的方法,它是什么?

0 投票
1 回答
1697 浏览

wpf - WPF - 在 ListView 中使用 KeyDown 构建一串按下的键

我有一个列表视图,其中有十几行绑定到 xml。我希望有可能将光标定位并定位到某个记录。例如:我有一个带有这些 ID、名称、值的:

当我输入“Je”时,SelectedRow 将定位到 ID 2。当我输入“Jeane”时,SelectedRow 将定位到 ID 3。只是我希望有可能搜索并转到正确的记录在列表视图中。我开始构建 SearchString,此时我陷入了困境:

WPF 中唯一的一种可能性是使用 KeyDown 事件。不幸的是,此事件返回一种 Key,我无法将其转换为字符串。例如,当我按“A”时,SearchString 将是“A”。当我继续输入“B”时,SearchString 将是“AB”等。当 SelectedItem 更改时,SearchString 将设置为 String.Empty。没有可用的 KeyCode 或其他有用的属性/方法。

这里是头部摩擦。如何构建我需要的 SearchString?当我尝试 e.Key.ToString() 时,我得到了非常有趣的字符串 - 例如,对于 Numpad 上的 0,我得到一个键“Numpad0”,对于“,”,我得到“OemComma”等。我也在尝试使用 TryParse 方法来 char ,对于键“3”,我得到一个值“#”等,它仅适用于字母 A 到 Z,对于其他键 TryParse 返回 false。

解决此问题的唯一方法是使用很长的“case e.Key.ToString() of”构建一个转换表:

等等等等等等

没有更聪明更简单的方法吗?或者我只是因为森林而看不到树?

0 投票
3 回答
321 浏览

php - 我有一个登录表单,其中包含单击 Enter 键提交表单的事件,它在 IE 中不起作用

我有一个登录表单,其中包含单击 Enter 提交表单的事件,它在 IE 中不起作用

在提交按钮上,我提到了一个事件onkeydown="javascript: if (window.event.keyCode == 13) login.submit(); else window.event.keyCode = null;"

这在 IE 中不起作用,有人可以建议我为此提供任何解决方案或我已申请我的要求的任何替代解决方案吗?