フォーム検証のためのjqueryプラグインを作成しました。これは、$( 'element')。イベントを送信して検証をトリガーします(バインドはプラグインの中にあります)。検証プラグの内部jquery、バインディング注文/コールバック待ち
// pseudocode
jquery.rdy {
$('form').validate(); //binding the plugin
}
私が提出し
//pseudocode
[...]
$().submit(function() {
validating... //returning true/false
if (false) {
return false //prevent submit form
}
}
[...]
に検証をバインドするので、今、私の質問は、私は(例えばjsの他のスクリプトで)に結合することができますどのようにある他のもの:どういうわけか、このような提出するだけではなく、検証が行われた場合。この
$('form').submit(function() {
if (validate plugin was executed) {
//do stuff like check if validation was returning a true and now do something else
}
}
のようなので、
がうまくいけば、私はそれが右...私の英語が最善ではないdescripedが、私は、コンクリートの可能性のようにしようと試みた(と私は願って、擬似コードは、同様に適切なアプローチです)
// EDIT:問題はより具体的な作り: は、私は次のような問題を解決する方法を把握しようとしている:(その非常に文脈の外になく、問題はまさにそこにある。) 私が持っています別の解散でトリガーされたコードに応じて何かをしているイベントを提出してください。
$('element').submit(function() {
if ($(this).hasClass('foo')) {
// do something
}
});
$('element').submit(function() {
$(this).addClass('foo');
});
そして、最初の機能は、2番目の機能の前にトリガーされたために何もしません。これを解決するきれいな方法はありますか?たぶん私はタイムアウトイベントが必要です(私はそれらを憎む)?
そうすることができますが、私はこの中にすべての私の文を宣言しない必要があります()構文を)検証し、あなただけのはisValid()メソッドを呼び出すことができます検証後に機能する。私はそれのようなものを望んでいない(jsの呼び出し関数の考えも)。 私のものをやっている通常の送信イベントが欲しいです。しかし、ちょうど私はいくつかのものが完了したときにこの提出イベントが実行されていることを確認したい(私の場合は、自分の仕事をしたバリデーションプラグ)。だから、私のプラグでフォームに "無効な"クラスを追加し、 "if!hasclass(無効)"のような2番目のサブミットイベントでチェックすることができますが、これは、遅くまで実行されます – user1104419
私はそれをより理解しやすくするために私の質問を編集しました – user1104419
上記の更新を参照してください –