0

invalidHandler有効なエントリが完了したときにエラーカウンターを更新するようにjQueryValidateプラグインを取得するにはどうすればよいですか?

$(document).ready(function () {
    $("#report-listing-form").validate({
        rules: {
            'listing-report-email': {
                required: true,
                email: true
            },
                'listing-report-name': {
                required: true
            },
                'listing-report-phone': {
                number: true,
                minlength: 7,
                maxlength: 12
            },
                'contact-msg': {
                required: true,
                maxWords: 1000
            }
        },
        errorPlacement: function(error, element) {
            return false;  // will suppress error messages
        },
        invalidHandler: function (event, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                var message = (errors == 1) ? '1 invalid field.' : errors + ' invalid fields.';

                $("#err_report-listing-form").html(message).addClass("text-error");
            }
        },
        submitHandler: function (form) {
            alert('valid form');
            return false;
        }
    });
});

これが私のコードの実例ですhttp://jsfiddle.net/4VP9X/12/

4

2 に答える 2

5

このリンクjquery validate pluginに基づいて、showErrors コールバックを追加しました。より近いものでしたが、メールや電話番号など、フィールド形式が失敗した場合にのみ更新されます。空のフィールドでは機能しないようです。

showErrors: function(errorMap, errorList) {
  var errors = this.numberOfInvalids();
  if (errors) {
    var message = (errors == 1) ? '1 invalid field.' : errors + ' invalid fields.';
    $("#err_report-listing-form").html(message).addClass("text-error");
      this.defaultShowErrors();
    }               
  },
于 2013-03-13T18:29:23.430 に答える
1

引用OP

invalidHandler 「有効なエントリが完了したときに、jQuery Validate プラグインでエラー カウンターを更新するにはどうすればよいですか?」

簡単な答え: できません。

ドキュメントに従って

invalidHander : "無効なフォームが送信されたときのカスタム コードのコールバック。イベント オブジェクトを最初の引数として呼び出し、バリデータを 2 番目の引数として呼び出します。"

つまり、invalidHanderコールバックはsubmitイベントでのみ発生します。この動作は、独自の jsFiddleで確認できます。プラグイン自体のコードをハックしたい場合を除き、回避策はありません。

于 2013-03-13T23:13:25.290 に答える