0

在 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
}

阅读http://api.jquery.com/submit/后,以下代码有效

ContactForm = $('#EmailForm');
ContactForm.submit(function() {
   //do stuff here
});

为什么提交方法需要一个函数来环绕我试图触发的代码。为什么我不能像原生 javascript 那样直接调用函数?

提前致谢

4

2 回答 2

2

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

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

submitjquery 对象的函数将为submit底层 javascript 对象注册事件

于 2013-06-08T07:27:29.073 回答
-1

试试这个:

var ContactForm = $('#EmailForm');
ContactForm.submit(validateForm());
于 2013-06-08T07:08:38.537 回答