表单提交jqueryvjavascript差异

表单提交jqueryvjavascript差异,javascript,jquery,forms,submit,difference,Javascript,Jquery,Forms,Submit,Difference,在javascript中,这工作正常,validateForm函数启动 ContactForm = document.getElementById('EmailForm'); ContactForm.onsubmit=validateForm; function validateForm() { //do stuff here } 但是为什么jquery中相同代码的类似实现不起作用呢?这就是我想做的 ContactForm = $('#EmailForm'); ContactForm.

在javascript中,这工作正常,validateForm函数启动

ContactForm = document.getElementById('EmailForm');
ContactForm.onsubmit=validateForm;

function validateForm() {
   //do stuff here
}
但是为什么jquery中相同代码的类似实现不起作用呢?这就是我想做的

ContactForm = $('#EmailForm');
ContactForm.submit=validateForm;

function validateForm() {
   //do stuff here
}
在阅读了以下代码之后,它就开始工作了

ContactForm = $('#EmailForm');
ContactForm.submit(function() {
   //do stuff here
});
为什么submit方法需要一个函数来包装我试图触发的代码。为什么我不能像本机javascript那样直接调用函数

提前感谢

试试这个:

var ContactForm = $('#EmailForm');
ContactForm.submit(validateForm());

因为jquery对象是javascript对象的包装器。jquery对象公开了另一组方法来处理底层javascript对象
onsubmit
是底层JavaScript对象的属性,但jquery对象没有它。当你打电话的时候

ContactForm.submit(function() {
   //do stuff here
});

jquery对象的
submit
函数将为底层javascript对象注册
submit
事件,这不起作用。应将其更改为ContactForm.submit(validateForm);