Jquery 表单中的Alt或Ctrl键代码问题
组合键,如Jquery 表单中的Alt或Ctrl键代码问题,jquery,keycode,Jquery,Keycode,组合键,如Alt+0233。在我的在线表单中,我想使用Alt+e或Ctrl+e来生成。我知道如何使用jQuery实现这一点,但问题是Alt+e也与浏览器的编辑菜单关联,因此会打开菜单。类似地,Ctrl+e也与其他一些浏览器功能相关联。使用Ctrl+'+e也会得到相同的结果 我想知道这个问题是否有解决办法。有人尝试过类似的方法吗?您可能可以通过捕捉击键和处理来获得所需: $('#scanned_element').keypress(function(e) { if (e.which ==
Alt+0233
。在我的在线表单中,我想使用Alt+e
或Ctrl+e
来生成。我知道如何使用jQuery实现这一点,但问题是Alt+e
也与浏览器的编辑菜单关联,因此会打开菜单。类似地,Ctrl+e
也与其他一些浏览器功能相关联。使用Ctrl+'+e
也会得到相同的结果
我想知道这个问题是否有解决办法。有人尝试过类似的方法吗?您可能可以通过捕捉击键和处理来获得所需:
$('#scanned_element').keypress(function(e) {
if (e.which == 101) {
if (e.altKey) {
/* Alt-e was pressed here (code 101 = 'e')*/
...
/* Stop event from bubbling */
e.preventDefault();
return false;
}
}
});
此外,您可能还想签出Jquery热键()如果要执行此操作,您可能还想调用
e.preventDefault()
和return false
以阻止事件冒泡到浏览器。@shortstuffsushi是的,我认为这样做很有效。我完全忘记了e.preventDefault()
。伙计们,你们还知道如何使用Ctrl+'+e
来做上面的事情吗。我尝试了if(e.which==101&&e.which==39&&e.ctrlKey)
但似乎不起作用。请参见此处的演示:e.which
每次调用该函数时仅为一个值,因此e.which==101&&e.which==39
永远不会为真。@shortstuffsushi我在不同浏览器中测试脚本,发现e.preventDefault()
似乎只在Firefox中有效,在其他浏览器中无效。我试过IE、Chrome等-不起作用。有什么想法吗?