Javascript JQuery:处理程序信息为空
我是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",
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