标签: keycode

Jquery:检测是否单击了鼠标中键或右键,如果是,请执行以下操作:

看看我的jsfiddle 演示,如果e.which == 1那样当你左键单击h2它会 e.which == 2e.which == 3然后它不会工作.2是鼠标中键,3是鼠标右键.我也发现了这个:

JQuery提供了一个e.which属性,分别为左,中,右三次返回1,2,3.所以你也可以使用if(e.which == 3){alert("right click"); }

此代码无效:

码:

    $("h2").live('click', function(e) { 
   if( e.which == 2 ) {
      e.preventDefault();
      alert("middle button"); 
   }
});
Run Code Online (Sandbox Code Playgroud)

jquery click keycode live right-mouse-button

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

Javascript:unicode字符的非unicode字符代码?

我的条码扫描器的字符代码问题用于将字符输入到Web界面.

如果条形码具有诸如 - (短划线/连字符/减号)之类的符号,则它给出了在许多字符集中正确的字符代码189.实际上,如果我在扫描时选择了文本输入,它将按预期输入 - 字符.但是,如果我从全局文档拦截keypress或keyup事件并使用fromCharCode()函数自己构建字符串,而不是让浏览器处理它,我得到½字符,这当然是189的unicode转换码.

在事件本身中,keyCode和"which"显示为189,而keyIdentifier为"U + 00BD".不幸的是,我真正需要的charCode值始终为0.

当然,我现在可以在大约5秒内手动处理这种转换.问题是我不知道我可能从扫描仪获得的完整代码集,我担心未来几周或几个月会出现未处理的角色,并会让人头疼.或者,我可以将原始字符代码上传到服务器并尝试在PHP中处理它.我更喜欢在客户端上处理它,但是出于时间和响应的原因.将假按键发送到不可见的文本输入可能也会起作用,但这是一个非常糟糕的解决方法.

似乎应该有更好的方法来做到这一点,我必须遗漏一些明显的东西.有没有人有任何想法?

javascript unicode keycode keypress character-encoding

13
推荐指数
1
解决办法
1108
查看次数

我在mac上的Firefox中遇到keydown事件和自动完成问题

这让我疯了.这是一个难以解释的但我会有所作为.

我的网站首页上有一个输入文本字段.我编写了一个keydown事件观察器,它检查keyCode,如果它的ENTER(或等效),它将检查输入值(电子邮件).如果电子邮件在数据库中有效且唯一,则会提交表单.基本的东西,或者你会想到的.

如果我在字段中输入我的电子邮件地址并按Enter键,它在所有浏览器中都能正常工作.但是,如果我键入前几个字母,然后使用箭头键从历史记录下拉框中选择电子邮件(希望你知道我在这里的意思),然后按回车键结果不同.表单字段的值被捕获为我键入的几个字母,因此验证失败.似乎当我按下回车键从历史记录下拉列表中"选择"电子邮件时,浏览器正在打断,就好像我正在打字一样.

在Chrome和Safari中它可以正常工作.因为它应该意味着当您按Enter键从历史记录下拉列表中"选择"电子邮件时,它所做的就是将该电子邮件地址放入文本框中.只有在第二个ENTER键按下它然后触发事件观察者,并验证电子邮件.

希望有人可以解释为什么会发生这种情况......我的直觉是它是一个浏览器的东西,将是我无法解决的问题.

谢谢李

编辑:为了添加我的问题的澄清,让我添加我使用"keydown"事件来捕获按下回车键的时刻.我尝试了"keyup"事件,这解决了我上面的问题,但后来我似乎无法停止提交表单."keyup"事件在默认行为之后触发,因此它不是正确的选择.

进一步编辑:

再次感谢你,顺便说一句,你的英语非常好(回应你对英语不好的评论).

我已经改变了我的事件处理程序:

$("emailInputBox").observe("keydown", function(event) {
    return submitViaEnter(event, submitSignupFormOne);
});
Run Code Online (Sandbox Code Playgroud)

对此:

$("emailInputBox").observe("keydown", function(event) {
    setTimeout(submitViaEnter.curry(event, submitSignupFormOne),0);
});
Run Code Online (Sandbox Code Playgroud)

submitViaEnter:

function submitViaEnter(event, callback) {
var code = event.keyCode;
if (code == Event.KEY_RETURN) {
    event.stop();
    return callback(event);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)

似乎工作但现在的问题是允许浏览器在运行submitViaEnter函数之前执行默认操作,这意味着当我按Enter时正在提交表单.

javascript macos firefox keycode prototypejs

12
推荐指数
1
解决办法
4026
查看次数

仅允许数字和ctrl + a,ctrl + v,ctrl + c到文本框


我试图允许用户只输入数字并将控件复制并粘贴到文本框中.我能够限制用户只输入数字,但复制,粘贴不起作用,帮我解决这个问题.

这是我的脚本:

$(".allow_only_numbers").keydown(function (e) {
    var ctrlDown = false;
    var ctrlKey = 17, vKey = 86, cKey = 67;
    if (e.keyCode === ctrlKey){
        ctrlDown = true;
    }
    // Allow: backspace, delete, tab, escape, enter and .
    if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 ||
            // Allow: Ctrl
        (e.keyCode === ctrlKey) ||
            // Allow: Ctrl+A
        (e.keyCode === 65 && e.ctrlKey === true) ||
            // Allow: Ctrl+v
        (e.keyCode === vKey && ctrlDown) ||
            // Allow: Ctrl+c
        (e.keyCode === cKey …
Run Code Online (Sandbox Code Playgroud)

javascript regex jquery keycode

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

JavaScript密钥代码仅允许数字和加号

我有这个JavaScript函数,用于强制用户只在文本框中键入数字.现在,我想修改此功能,以便用户输入加号(+)符号.怎么做到这一点?

//To only enable digit in the user input

function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
Run Code Online (Sandbox Code Playgroud)

javascript keycode

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

jquery keypress事件对象keyCode for firefox问题?

FireFox的jQuery keypress事件keyCodeString.fromCharCode(e.keyCode)转换后为事件对象提供加密属性,但在Chrome中运行良好.

以下是javascript代码:

<!-- #booter and #text are ids of html element textarea -->

<script type="text/javascript">        
    $(function(){
        $('#booter').keypress(function(e){              
            var input = $(this).val() + String.fromCharCode(e.keyCode);
            $('#text').focus().val(input);
            return false;
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript jquery events keycode keypress

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

KeyEventArgs.KeyData,KeyEventArgs.KeyCode和KeyEventArgs.KeyValue

我对这个问题KeyEventArgsKeyCodeKeyDataKeyValue. KeyCode并且Keydata是键类型,但我不知道它们之间有什么区别.因为KeyValue,我不知道它是什么 - 它有一个int类型,它是否返回char按下的键的值?

我对Key事件没有多少经验; 任何关于它们如何运作以及如何使用它们的解释将不胜感激.

.net c# keycode key-value keyeventargs

11
推荐指数
1
解决办法
6660
查看次数

什么是Ttrl = linux中的ctrl + arrow(左,右,......)的终端转义序列

我正在浏览器中建立一个终端窗口(就像ajaxterm一样)并且不知道要发送到ssh隧道的哪个转义序列(打开通过paramiko.SSHClient().invoke_shell(term='linux')).

我找到了一个关键记录器并在$ TERM =='linux'的终端中尝试了它,但它返回了相同的序列ctrl+leftleft(27,91,68).

如果我在另一个终端尝试键盘记录器(使用$ TERM =='xterm'),我会得到代码(27,91,49,59,53,68).但是这些代码不会移动从SSH通道生成预期的输出(这将在正常的Linux shell上移动光标一个字).即使我用term ='xterm'开始paramiko也是如此.

知道我应该使用什么序列?或者为什么上面的序列不起作用?

更新:我很乐意使用另一种终端类型(不是"linux"),但遗憾的是pyte仅适用于VTxxx终端(我相信"linux"是类似vt220的终端 - 无论如何,它都有效),所以xterm不起作用正常.

linux terminal keycode xterm vt100

11
推荐指数
2
解决办法
8687
查看次数

Javascript numberpad键码解析

我试图用以下代码从数字键盘解析keydown事件:

$('#myDiv').keydown(function(e) {
  val = String.fromCharCode(e.which)
});
Run Code Online (Sandbox Code Playgroud)

问题是键盘0-9返回keyCodes 96-105,根据fromCharCode()小写字母a-i.如何将numberpad的keydown事件解析为适当的数字?

javascript keycode

11
推荐指数
2
解决办法
9581
查看次数

密钥的KeyCode(?ß\)

我正在使用德语键盘(如下所示)并尝试使用Java中的Robot类.我正在尝试找到我按下的键的KeyCodes.它适用于getKeyCode().例如:'A'是代码:65,' - '是代码:45,'ENTER'是代码:10

但是当我按下'?ß\'键(在上面1-0键的德语键盘上) getKeyCode()说代码:0,我也没有VK_KEY在纪录片中找到任何内容.

有没有办法按下那把钥匙?


德国键盘

java keycode

11
推荐指数
1
解决办法
2978
查看次数