2013-09-04 9 views
12

そうのようなバリデータオブジェクトを保存することなく、submitHandler関数内からjQueryのバリデータオブジェクトを取得します。私は<code>submitHandler</code>関数内からjQueryの検証<code>showErrors</code>機能を呼び出そうとしています

var validator = $("#myshowErrors").validate(); 
validator.showErrors({ 
    "firstname": "I know that your firstname is Pete, Pete!" 
}); 

取得する方法はありますこのように、ややsubmitHandlerメソッド内からバリデータオブジェクトを取得:

$("#myshowErrors").validate({ 
    submitHandler : function(form) { 

    $(form).ajaxSubmit({ 
     success : function(result) { 

     var validator = // Get validator here somehow? 
     validator.showErrors(result.fieldErrors); 

     } 
    }); 

    } 
}); 

をこのようにそれを行うことで、私の希望は、私がmultiplに同じsubmitHandlerメソッドを使用することができるということです私のプロジェクト全体に行きます。

+0

利用できるので、多くの方法がありますこのプラグインの使用法をカスタマイズします。しかし、 '.validate()'の外側で 'submitHandler'を使うことはできません。なぜ 'submitHandler'コールバック関数の中に' showErrors'を置く必要がありますか? – Sparky

+0

あなたが達成しようとしていることについて具体的な例を挙げて、[jsFiddle](http://jsfiddle.net/Y95gk/)に入れることができます。標準オプションとコールバック関数を使ってよりうまく実行できるかどうかを私はあなたに伝えることができます。 – Sparky

+1

編集されたOPに関して:これはまだ意味をなさない。 [定義によると](http://jqueryvalidation.org/validate)、 'submitHandler'コールバック関数は、フォームが" valid "のときにのみ起動します...有効なフォームにnoが指定されていれば、どの時点で' showErrors'が使われますか?エラー? – Sparky

答えて

19

バリデータオブジェクトは、フォーム要素データに格納されている:

var validator = $.data(form, "validator"); 

編集:実際バリで

thisに格納されるべきである:

$("#myshowErrors").validate({ 
    submitHandler : function(form) { 
    var validator = this; 

    $(form).ajaxSubmit({ 
     success : function(result) { 
     validator.showErrors(result.fieldErrors); 
     } 
    }); 

    } 
}); 
+1

ありがとう!これはまさに私が探していたものです! –

関連する問題

 関連する問題