【问题标题】:What is the keyCode for "$"?"$" 的 keyCode 是什么?
【发布时间】:2012-08-08 16:06:25
【问题描述】:

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

因为要获得$,您必须按shift-键和4-键。我不确定您将如何获得这样的 keyCode?​​p>

【问题讨论】:

标签: javascript keycode


【解决方案1】:

没有onkeydown 键码,正如 ngmiceli

之前所说

虽然,onkeypress 键码存在并且等于36

JavaScript Event KeyCode Test Page

【讨论】:

    【解决方案2】:

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

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

    Here's some code,根据 MDN 提供的 onkeydown 示例编辑,用于检测按键键码。

    Here's the fiddle 更新为对 Firefox 友好,使用来自 this S.O. post 的帮助。 JQuery 解决方案也可以,如果你那样做的话。

    【讨论】:

    • 您编辑的小提琴在 firefox12 中给出了这个结果:'keyCode for the key pressed: 0' (on any key i press..)
    • @GitaarLAB 真奇怪。适用于 IE 和 Chrome。我无法想象 Firefox 不会支持 onkeypress,尽管将它换成 onkeydown 在 Firefox 中确实有效。
    • 查看this S.O. thread for info on onkeypress in Firefox怀疑它也是唯一的一个
    • 我对 firefox 失去信心(除了它开始带来的安全风险).. 但主题:是的,不管我按什么键,也不会响应 shift alt 或 ctrl..
    • @GitaarLAB 添加了另一个对 Firefox 友好的小提琴
    【解决方案3】:

    那么不要使用这种方式来解决您的问题:因为您无法预测每个键盘布局都会始终将 $-sign 输入为 shift+4。
    您仍然可以获取 keycode 4,并检查是否按下了 shift,但您无法确定这一点!!

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

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

    祝你好运!!

    【讨论】:

      【解决方案4】:

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

      通常,您会检查移位器是否处于活动状态,并监听相关键上的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; }
      });
      

      【讨论】:

        【解决方案5】:

        onkeypress - Unicode CHARACTER 代码是:36

        onkeydown - Unicode KEY 码是:52

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多