【问题标题】:Obtain javascript keycode of symbols in the numeric keys of keyboards获取键盘数字键中符号的javascript键码
【发布时间】:2013-05-31 02:39:53
【问题描述】:

无论键盘和操作系统的语言和文化如何,/(正斜杠)符号的 javascript 键码是什么?在英文键盘中,正斜杠位于与数字键分开的键中,它的键码是 191。但是在西班牙语键盘中,该字符与数字 7 在同一个键中并输入它我必须做 SHIFT + 7,但该组合不会产生键码 191!

我尝试过if (event.shiftKey && event.keyCode == 55) {},其中 55 是字符 7 的键码,它可以工作,但使用英文键盘时,if (event.shiftKey && event.keyCode == 55) {} 条件允许我输入 &(和号)符号。

我的网页中有一个文本框,我只想允许用户输入数字和正斜杠,无论他们使用的键盘或操作系统是什么语言,也不管他们只需按一个键即可输入正向斜线或者他们必须组合 SHIFT + 数字键或其他类型的组合。我该怎么做?

【问题讨论】:

    标签: javascript culture keycode


    【解决方案1】:

    作为防止按键的替代方法:

    <textarea oninput="validate(this,/([^\/\d])/g)" ></textarea>
    <script>
    function validate(inp,reg)
    {
        //([^\/\d]) translates to:
        //"remove everything that is not a / or a number"
        var s = inp.selectionStart;
        inp.value = inp.value.replace(reg,"");
        inp.selectionStart = s;inp.selectionEnd = s;//reset caret position
    }
    </script>
    

    【讨论】:

      【解决方案2】:

      您可以通过听 keypress 而不是 keydown 来实现这一点,这将为您提供一个包含实际按下的键和相应的 ASCII 代码的事件对象。

      // Vanilla JavaScript
      document.body.addEventListener('keypress', function(event) { 
        console.log(event);     
      });
      
      // jQuery
      $('body').on('keypress', function (event) {
        console.log(event);
      };
      

      【讨论】:

        猜你喜欢
        • 2018-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 1970-01-01
        相关资源
        最近更新 更多