1

而不是在每个表单元素下显示一条消息,如果有超过 5 个错误,我想在表单上方显示 1 条错误消息以及错误总数。

原因:我的表格很大,如果有很多错误,它的高度几乎可以翻倍。

我将如何获得错误总数?

例如,像这样的东西,但这总是返回 1。

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

2 回答 2

3

使用numberOfInvalids验证方法。

演示:http: //jsfiddle.net/szaboat/Q3Mjg/1/

于 2012-09-22T14:11:35.303 回答
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();
    }
  }
});
于 2017-06-07T22:21:05.107 回答