2

我正在尝试使用 jquery validate 来显示从服务器返回的一些错误。

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

我可以让方法按照这里的示例工作。

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"});

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

任何想法使用正确的格式来显示多个错误

4

1 回答 1

3

所以看起来正确的格式是

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

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

于 2012-11-28T11:01:48.713 回答