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
});

submit メソッドが起動しようとしているコードをラップする関数を必要とするのはなぜですか。ネイティブの 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 に答える