jquery validate显示1条错误总数的消息

时间:2012-09-22 12:56:21

标签: jquery jquery-validate

不是在每个表单元素下显示消息,如果有超过5个错误,我想在表单上方显示1个错误消息,其中包含错误总数。

原因:我有一个很大的形式,如果有很多错误,这个高度几乎会翻倍。

我如何获得错误总数?

E.g之类的东西,但这总是会返回1.

errorPlacement: function(error, element) {
    var errorCount = 0;
    var i;
    for (i = 0; i < error.length; ++i) {
        errorCount++;
    }    
}

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

如果其他人遇到这个问题,szaboat的jsfiddle中有一个错误导致了我的问题。

您需要将函数传递给invalidHandler方法的validate()选项,该函数应接受两个参数。第二个参数是验证器本身,它有一个numberOfInvalids()方法,它返回总错误计数。

以下是jQuery Validation Plugin Documentation

中的示例
$("#myform").validate({
  invalidHandler: function(event, validator) {
    // 'this' refers to the form
    var errors = validator.numberOfInvalids();
    if (errors) {
      var message = errors == 1
        ? 'You missed 1 field. It has been highlighted'
        : 'You missed ' + errors + ' fields. They have been highlighted';
      $("div.error span").html(message);
      $("div.error").show();
    } else {
      $("div.error").hide();
    }
  }
});