“$”的keyCode是什么?

时间:2012-08-08 16:06:26

标签: javascript keycode

我正在尝试禁止在文本输入中输入所有其他字符。

因为要获得$,你必须按 shift -key和 4 -key。我不确定你会怎么得到像这样的事情的keyCode?

5 个答案:

答案 0 :(得分:5)

键码仅与键有关。 $是一个字符,通过两个键Shift和4实现。使用$ 时,onkeydown 没有明确的密钥代码

编辑:爱德华曾指出onkeypress使用了键组合,并且确实有组合键码。每天都学到新东西:)

Here's some code,由MDN提供的onkeydown示例编辑,用于检测按键密钥代码。

Here's the fiddle使用this S.O. post的帮助更新为Firefox友好版。如果你这样摆动,JQuery解决方案也会起作用。

答案 1 :(得分:5)

没有onkeydown密钥代码,正如先前 ngmiceli 所述

虽然onkeypress密钥代码存在且等于36

JavaScript Event KeyCode Test Page

答案 2 :(得分:2)

然后DONT用这种方式来解决你的问题:因为你无法预测每个键盘布局都会将$ -sign作为shift + 4输入。
您仍然可以获得键码4,并检查是否按下了班次,但您无法确定这一点!!

因此最好简单地替换字段中的所有非法字符(在提交数据之前)。想一想:str.replace()
您还可以在输入框的onkeyup事件中检查您的非法字符集,在您键入时有效地替换所有非法字符!
喜欢:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
那应该做你想要的。

请注意:您绝不应该信任浏览器输入,并且仍应在接收脚本中过滤此输入!

祝你好运!!

答案 3 :(得分:1)

$没有密钥代码,因为它不是有效密钥 - 必须通过某种移位器访问它。

通常,您会检查移位器是否处于活动状态,并在相关键上侦听keypress事件。对于您的实例中的QWERTY布局,这样的事情是这样的:

var shiftPressed = false;

$(window).keydown(function(e) {  
    if(e.which == 16) { shiftPressed = true; }
    if(e.which == 52 && shiftPressed) 
    {  
        // Do whatever here...
    }
});

$(window).keyup(function(e) {  
    if(e.which == 16) { shiftPressed = false; }
});

答案 4 :(得分:0)

onkeypress - Unicode CHARACTER代码为:36

onkeydown - Unicode KEY代码为:52