18

ページで jQuery Validation を使用しています。invalidHandler の呼び出し中に、検証に失敗したすべてのフォーム要素のリストにアクセスできるようにしたいと考えています。

この関数は、オプションの 1 つとして jQuery.validate() メソッドに渡されています...

invalidHandler: function (form) {
    var validator = $("#AddEditFinancialInstitutionForm").validate();
    validator.showErrors();
    console.log(validator);
}

結果のバリデーターオブジェクトのどこかでこの情報を見つけようとしていますが、見つけられないようです。この情報にアクセスする別の方法はありますか?

ありがとう

4

3 に答える 3

34

では、aとオブジェクトinvalidHandlerの2つの引数が渡されます。検証オブジェクトを取得するために、invalidHandler内でvalidateを呼び出す必要はありません。さらに、バリデーターオブジェクトには、およびと呼ばれるプロパティがあります。このプロパティには、探している情報が含まれています。 jQuery.EventvalidatorerrorListerrorMap

invalidHandler: function(e,validator) {
    //validator.errorList contains an array of objects, where each object has properties "element" and "message".  element is the actual HTML Input.
    for (var i=0;i<validator.errorList.length;i++){
        console.log(validator.errorList[i]);
    }

    //validator.errorMap is an object mapping input names -> error messages
    for (var i in validator.errorMap) {
      console.log(i, ":", validator.errorMap[i]);
    }
}
于 2012-07-25T15:12:04.943 に答える
3

デフォルトのエラークラスを使用していて、無効な要素のみを見つける場合は、

 $(this).find("input.error") // inside invalidHandler
于 2012-07-25T03:42:47.220 に答える