jQuery Validate插件的invalidHandler计数器

时间:2013-03-13 15:29:51

标签: jquery jquery-validate

如何在有效输入完成后获取jQuery Validate插件来更新invalidHandler错误计数器?

$(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/

的一个工作示例

2 个答案:

答案 0 :(得分: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();
    }               
  },

答案 1 :(得分:1)

引用OP

  

“我如何获取jQuery Validate插件来更新invalidHandler   有效输入完成时的错误计数器?“

简短的回答:你不能。

As per the documentation

  

invalidHander :“当提交无效表单时回调自定义代码。以事件对象作为第一个参数调用,验证程序作为第二个参数调用。”< / p>

换句话说,invalidHander回调仅触发submit事件。您可以在your own jsFiddle中看到此行为。没有解决方法,除非你想破解插件本身的代码。