我有select
标记,我可以从F1
向F10
提供选项。现在,当用户按下从F1
到F10
的任何一个按钮时然后我必须检测。
<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如何匹配两者。我需要从键盘按下的键或选项中选定值的键码
演示
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;
我从选择的选项获得了值但是现在如何从选项中获取用户按下的键或所选值的键码以匹配条件?
答案 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