标签: keycode

如何检查按键上文本字段的新值?

我有一个表单字段,我需要能够检测字段何时更改并使用字段的值执行一些其他代码.如果按下的键实际上改变了文本框的值,我只想执行代码.这是我提出的解决方案.

function onkeypress(e) {
  var value = this.value;
  // do something with 
}

function onkeyup(e) {
  if ( e.which == 8 || e.keyCode == 46 ) { // delete or backspace keys
    this.onkeypress(e);
  }
}
Run Code Online (Sandbox Code Playgroud)

但是只有一个问题.onkeypress在字段值更新之前被触发,所以当我获取值时,我得到之前的值.如果我知道一种方法来测试密钥是否改变了值,我会专门使用密钥,但是某些字符(如箭头键)对字段的值没有影响.

有任何想法吗?

javascript keycode onkeypress fromcharcode onkeyup

10
推荐指数
2
解决办法
2万
查看次数

为什么Alt Gr与Ctrl具有相同的keyCode?

我正在玩这个剧本.

而且我注意到Alt GrKeyCode 在IE10中是17,在Chrome中是17和18

有人可以解释为什么它不是18(或一个全新的数字)以及为什么我在Chrome中获得两个弹出窗口?

下面是代码:

document.onkeyup = KeyCheck;
function KeyCheck(e) {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    alert(KeyID);
    switch (KeyID)
    {
        case 18:
            document.Form1.KeyName.value = "Alt";
            break;
        case 17:
            document.Form1.KeyName.value = "Ctrl";
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

这不是我的代码,我只是偶然发现它.

编辑:有更多的游戏我相信Alt Gr意味着Ctrl+ Alt同时,因为一些需要Alt Gré的东西也适用于Ctrl+ Alt.

javascript keycode

10
推荐指数
1
解决办法
3806
查看次数

Java:在JTextPane上注册<ENTER>键

我正在使用具有JTextPane的java创建应用程序.我想能够在enter按下键时(或当用户进入下一行时)执行一些代码.我在网上看了一下,没有找到解决方案.使用C#解决这个问题会更好吗?如果没有,我如何在JTextPane的keyTyped()事件中注册Enter键?如果C#是一个不错的选择,我将如何在C#中执行此操作?

这是我认为可行的解决方案......但没有

//Event triggered when a key is typed
private void keyTyped(java.awt.event.KeyEvent evt) {
    int key = evt.getKeyCode();
    if (key == KeyEvent.VK_ENTER) {
        Toolkit.getDefaultToolkit().beep();
        System.out.println("ENTER pressed");
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么上面的例子不起作用是因为无论我按哪个键,我得到一个0的keyCode.我更喜欢用Java解决这个问题但是C#也可以工作,也许更好.另外,请尝试用示例而不是链接回答问题(除非您确实需要).谢谢!

java swing keycode jtextpane actionlistener

9
推荐指数
1
解决办法
2万
查看次数

如何在Python中获取密钥代码

我必须知道按下了什么键,但不需要字符的代码,我想知道当有人按下'A'键时,即使获得的键是'a'或'A',所以其他键都是如此.

我不能使用PyGame或任何其他库(包括Tkinter).只有Python标准库.这必须在终端中完成,而不是图形界面.

不需要字符代码.我需要知道关键代码.

例如:

ord('a') != ord('A')                      # 97 != 65
someFunction('a') == someFunction('A')    # a_code == A_code
Run Code Online (Sandbox Code Playgroud)

python input keycode

8
推荐指数
3
解决办法
3万
查看次数

IE e.keyCode - 如何区分&符号和上箭头?

我正在尝试修复jQuery UI小部件上的一个非常奇怪的javascript行为.IE7(win XP),jQuery 1.2.6(是的,它是旧版本).

小部件是一个组合框,它捕获键盘事件并具有箭头键的特殊行为.

当我尝试在弹性框输入字段中键入"&"字符时,我会遇到奇怪的行为.

flexbox有一些代码,如:

//initialization
$myInputElement.keypress($.flexbox.process_key);
$.flexbox.process_key = function process_key(e) {
    $.flexbox.flexboxFromInput(this).processKey(e);
    return true;
};

//on the flexbox object's prototype:
...
    processKey: function processKey(e) {
        var mod = 0;
            if (typeof (e.ctrlKey) !== 'undefined') {
                if (e.ctrlKey) mod |= 1;
                if (e.shiftKey) mod |= 2;
            } else {
                if (e.modifiers & Event.CONTROL_MASK) mod |= 1;
                if (e.modifiers & Event.SHIFT_MASK) mod |= 2;
            }
            ...
            switch (e.keyCode) {
                   case 38: // up
                       this.prevResult();
                       break;
                   case 40: // down …
Run Code Online (Sandbox Code Playgroud)

javascript jquery keycode keypress internet-explorer-7

8
推荐指数
1
解决办法
2331
查看次数

如何捕获event.keyCode并将其更改为另一个keyCode?

我在这里检查了其他问题,但他们没有回答我的问题.我想简单地捕获某些keyCode并将其替换为另一个.我正在处理角色,而不是白色空间,我不需要松散焦点等.

以下是我的代码.但是你可以用你的那些替换那些keyCodes(例如,当按下大写"A"时,它应该替换为零0等).想法是替换keyCode.

phrase.keypress(function(event)
{
    if (event.shiftKey)
    {
        switch (event.keyCode)
        {
            // Cyrillic capitalized "?" was pressed
            case 1053: event.keyCode = 1187; event.charCode = 1187; event.which = 1187; break;
            // Cyrillic capitalized "?" was pressed
            case 1054: event.keyCode = 1257; event.charCode = 1257; event.which = 1257; break;
            // Cyrillic capitalized "?" was pressed
            case 1059: event.keyCode = 1199; event.charCode = 1199; event.which = 1199; break;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我也试过keydown和keyup.它们不会改变keyCode.我怎样才能做到这一点?

PS如果可能的话,我正在寻找一种解决方案,它不会"event.preventDefault()并手动将所需的键插入输入字段,然后将光标移动到末尾".我想要更清洁和"正确"的解决方案.谢谢.

javascript jquery keycode

8
推荐指数
2
解决办法
2万
查看次数

Xkb:如何将键码转换为keysym

我只是尝试使用KeyCode和修饰符掩码并使用Xkb扩展将其转换为KeySym.我似乎无法弄清楚为什么这不起作用.很明显,修饰语不匹配,但我不知道为什么.我甚至不知道我是否正确地转换了这个组.

#include <stdio.h>
#include <stdlib.h>
#include <X11/X.h>
#include <X11/XKBlib.h>

void check(XkbDescPtr keyboard_map, KeyCode keycode, unsigned int mask) {
    //What the hell is diff between XkbKeyGroupInfo and XkbKeyNumGroups?
    unsigned char info = XkbKeyGroupInfo(keyboard_map, keycode);
    int num_groups = XkbKeyNumGroups(keyboard_map, keycode);

    int key_width = XkbKeyGroupsWidth(keyboard_map, keycode);
    //int num_syms = XkbKeyNumSyms(keyboard_map, keycode);

    //Get the group
    unsigned int group = 0; // What should this default to?
    switch (XkbOutOfRangeGroupAction(info)) {
        case XkbRedirectIntoRange:
            /* If the RedirectIntoRange flag is set, the four least significant 
            * bits …
Run Code Online (Sandbox Code Playgroud)

linux x11 keyboard keycode

8
推荐指数
1
解决办法
5150
查看次数

如何确定KeyPress事件中是否已按下退格键?

这个:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx

...表示我应该在KeyPress事件中访问e.KeyCode,但我似乎没有.我试图只允许1,2,3和退格:

private void textBoxQH1_KeyPress(object sender, KeyPressEventArgs e) {
  if ((e.KeyChar != '1') &&
      (e.KeyChar != '2') &&
      (e.KeyChar != '3') &&
      (e.KeyChar != (Keys.Back))) {
    e.Handled = true; 
  }
}
Run Code Online (Sandbox Code Playgroud)

......但是"e." 没有显示像示例所示的"KeyCode"值,并且尝试使用Keys.Back的KeyChar骂我,"运算符'!='不能应用于'char'和'System.Windows.Forms.Keys'类型的操作数"

那我该怎么做呢?

c# keycode keypress winforms

8
推荐指数
1
解决办法
2万
查看次数

如何获取删除键的event.keyCode?

$('body').keypress(function(event){

     if(event.keyCode == 46){console.log('Delete Key Pressed')}; //does not work

     if(event.keyCode == 32){console.log('SPACE BAR')}; //works
})
Run Code Online (Sandbox Code Playgroud)

为什么删除键不显示在这个FIDDLE中?

events keycode keypress

8
推荐指数
2
解决办法
3万
查看次数

LG webOS后退事件

目前,我正在开发LG webOS应用程序(使用Vue.js)。一切正常,除了当我按下遥控器上的“后退”按钮时,不会触发“后退”事件。这导致我被迫将函数分配回到上一页,另一个按钮(对用户不友好)而不是正常的返回按钮。

(仅供参考:我正在使用webOS标牌显示)

我已经阅读了有关历史记录API和处理back事件的文档(webOS Back Button),并尝试了以下方法,但是我尝试的方法均无效:

  • 设置disableBackHistoryAPItrueappinfo.json然后在按下后退按钮(键代码461)时手动捕获按下事件。
  • 设置disableBackHistoryAPIfalseappinfo.json然后为popstate事件添加一个事件监听器
  • 反之亦然(因为你永远不知道)

即使试图捕获后退按钮按下事件(因此捕获键码461)也不起作用。该应用程序可以识别所有其他键码,但是按“后退”按钮根本不执行任何操作(不触发任何事件)。有人对此有任何想法吗?

为确保问题本身不受应用程序限制,我安装了以下应用程序Back Button Application。相同的结果:没有返回事件。

捕获关键事件的代码(记录除之外的所有关键代码461):

window.addEventListener('keydown', evt => {
    evt = evt || window.event
    console.log(evt.keyCode)
    if (evt.keyCode === 461) {
        router.go(-1)
    }
  })
Run Code Online (Sandbox Code Playgroud)

后退按钮被登记在LG的webOS模拟器(V4.0)。如前所述,我正在使用的框架是Vue.js,我使用Cordova Toast将项目编译为LG webOS(以及将来的Samsung Tizen)。

-奖励已过期但仍在寻找答案-

javascript keycode webos smart-tv

8
推荐指数
1
解决办法
264
查看次数