Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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
Javascript JQuery:处理程序信息为空_Javascript_Jquery - Fatal编程技术网

Javascript JQuery:处理程序信息为空

Javascript JQuery:处理程序信息为空,javascript,jquery,Javascript,Jquery,我是JQuery新手,这里有个问题。我正在尝试替换一个简单表单的enter的提交默认行为,该表单只有一个input(text)和一个input(btn)。我已成功取消默认行为。但是,当我查看e.keyCode或e.which时,它们都是未定义的。代码如下: $(".main-form").submit(function(e){ console.log(e); e.preventDefault(); }); 我也试过: $(".main-form").on("keypress",

我是JQuery新手,这里有个问题。我正在尝试替换一个简单表单的
enter
的提交默认行为,该表单只有一个
input(text)
和一个
input(btn)
。我已成功取消默认行为。但是,当我查看
e.keyCode
e.which
时,它们都是未定义的。代码如下:

$(".main-form").submit(function(e){
    console.log(e);
    e.preventDefault();
});
我也试过:

$(".main-form").on("keypress", function(e){
    console.log(e);
    e.preventDefault();
});
我终于得到了一些可以直接使用JavaScript的东西:

var main_form = document.querySelector('.main-form');

main_form.onkeypress = function (e) {
  if ( !e.metaKey ) {
    e.preventDefault();
  }
  console.log(e);
};

使用JQuery,在控制台中,我得到的只是一个满是空的对象。通过JavaScript,我获得了所有必要的信息。这背后的原因是什么?我怀疑我遗漏了一些明显的东西。

对于jQuery方法,
e
是jQuery事件对象。要获取javascript事件,可以访问
originalEvent
属性

$(".main-form").on("keypress", function(e){
    console.log(e.originalEvent);
    e.preventDefault();
});
获取密钥代码
e.originalEvent.keyCode