Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 表单中的Alt或Ctrl键代码问题_Jquery_Keycode - Fatal编程技术网

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等-不起作用。有什么想法吗?