从字符串中获取keycode / key

时间:2016-02-08 11:29:23

标签: javascript jquery

我有select标记,我可以从F1F10提供选项。现在,当用户按下从F1F10的任何一个按钮时然后我必须检测。

<select id="forward_ckey">
    <option value="default"></option>
    <option value="ESC" disabled>ESC</option>
    <option value="F1">F1</option>
    <option value="F2" disabled>F2</option>
    <option value="F3" selected>F3</option>
    <option value="F4" disabled>F4</option>
    <option value="F5" disabled>F5</option>
    <option value="F6">F6</option>
    <option value="F7">F7</option>
    <option value="F8">F8</option>
    <option value="F9">F9</option>
    <option value="F10">F10</option>
    <option value="F11">F11</option>
    <option value="F12">F12</option>
</select>

    $(document).unbind('keydown.g').bind('keydown.g', function (e) {
        var unicode = e.keyCode;            
        if (unicode == 'SELECTED VALUE KEYCODE') { //HERE "F3" KEYCODE

输出:如果我按下F3并且所选值也是F3那么它应该执行代码块... 我面临的主要问题是我从选项值获得F3并从keypress获取keycode如何匹配两者。我需要从键盘按下的键或选项中选定值的键码

演示

&#13;
&#13;
           var selected_id = "";
           $('select').on('change', function() {
             selected_id = this.value;
           });
           $(document).bind('keydown', function(e) {
             var unicode = e.keyCode;
             alert("");
             if (unicode == selected_id) { //F3 KEYCODE or Key from `e`
               alert("");
             }
           });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="play_ckey">
  <option value="default"></option>
  <option value="ESC" selected>ESC</option>
  <option value="F1">F1</option>
  <option value="F2" disabled>F2</option>
  <option value="F3" disabled>F3</option>
  <option value="F4" disabled>F4</option>
  <option value="F5" disabled>F5</option>
  <option value="F6">F6</option>
  <option value="F7">F7</option>
  <option value="F8">F8</option>
  <option value="F9">F9</option>
  <option value="F10">F10</option>
  <option value="F11">F11</option>
  <option value="F12">F12</option>
</select>
&#13;
&#13;
&#13;

我从选择的选项获得了值但是现在如何从选项中获取用户按下的键或所选值的键码以匹配条件?

2 个答案:

答案 0 :(得分:1)

要获取相应选定值的键码,您需要这样的内容:

var keycodes = {'F1': 112, 'F2': 113, 'F3': 114, …};
var selectedValue = $('#forward_ckey').val();
var selectedKeycode = keycodes[selectedValue];

答案 1 :(得分:0)

这可能会有所帮助:https://www.kirupa.com/html5/keyboard_events_in_javascript.htm

以下是样本:

function myKeyboard(e) {
    // gets called when any of the keyboard events are overheard
    keyCode = e.characterCode;
    alert(keyCode);
}

Bind您元素上的上述函数myKeyboard()或任何其他输入/ textarea框。

此处还列出了密钥及其字符代码:http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000520.html

另外还有另一个有用的指南:http://unixpapa.com/js/key.html

查看此演示:http://unixpapa.com/js/testkey.html