【问题标题】:jquery validate show multiple errorsjquery validate 显示多个错误
【发布时间】:2012-11-28 10:52:28
【问题描述】:

我正在尝试使用 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"});

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

知道用于显示多个错误的正确格式

【问题讨论】:

    标签: jquery json jquery-validate


    【解决方案1】:

    所以看起来正确的格式是

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

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

    【讨论】:

    • 这个数组语法给我一个错误,如果你有时间我有兴趣在 jsfiddle 上看到一个演示
    • 太棒了,事实证明这个功能使用 jquery >= 1.8.2 可以工作,但会在 jquery
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多