0

invalidHandler完成有效条目后,如何让 jQuery Validate 插件更新错误计数器?

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

引用操作

invalidHandler “当一个有效条目完成时,如何让 jQuery Validate 插件更新错误计数器?”

简短的回答:你不能。

根据文档

invalidHander :“提交无效表单时回调自定义代码。使用事件对象作为第一个参数调用,验证器作为第二个参数。”

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

于 2013-03-13T23:13:25.290 回答