2012-11-28 64 views
2

我正在使用jQuery验证来显示从服务器返回的一些错误。jquery validate显示多个错误

我使用validator.showErrors()方法来执行此操作。

我可以根据示例here获得该方法的工作方式。

var validator = $("#myform").validate(); 
validator.showErrors({"firstname": "I know that your firstname is Pete, Pete!"}); 

我试图然而,实现的是有2个以上的相同或不同的字段验证错误。根据文件,这是可能的

显示指定的消息。键必须参考 元素的名称,使用 配置的错误放置为这些元素显示值。

参数:

Object<String, String>错误 一个或多个键/值对 输入姓名和消息。

展望showErrors方法中显示以下内容:

showErrors: function(errors) { 
     if(errors) { 
      // add items to error list and map 
      $.extend(this.errorMap, errors); 
      this.errorList = []; 
      for (var name in errors) { 
       this.errorList.push({ 
        message: errors[name], 
        element: this.findByName(name)[0] 
       }); 
      } 
      // remove items from success list 
      this.successList = $.grep(this.successList, function(element) { 
       return !(element.name in errors); 
      }); 
     } 
     this.settings.showErrors 
      ? this.settings.showErrors.call(this, this.errorMap, this.errorList) 
      : this.defaultShowErrors(); 
    } 

我曾尝试以下:

validator.showErrors({ "Id": "I know that your firstname is Pete, Pete!" },{ "Id":"test2"}); 

,但它仍然只显示第一个错误。

任何想法正确的格式来得到它显示多个错误

回答

3

所以它会出现在正确的格式是

validator.showErrors({ "Id": ["I know that your firstname is Pete", "test2" ]}); 

不幸的是显示旁边的第一个错误的第二个错误,所以我的下一个问题是找到一个更好的方式来格式化这些。

+0

这个数组语法给我一个错误,如果你有时间我很想看到演示的jsfiddle –

+1

http://jsfiddle.net/4pqjZ/ –

+0

很大,原来此功能的工作原理使用jQuery> = 1.8.2,但会抛出一个JavaScript异常jquery <= 1.7.2(这是我使用的) –