jQuery验证插件错误作为摘要

时间:2013-05-16 19:31:15

标签: javascript jquery html jquery-validate

我正在尝试使用jquery.validation插件创建验证摘要。

到目前为止我所拥有的是:

// Validate order form before submitting it
$('.order-material-form').validate({
    onkeyup: false,
    onclick: false,
    showErrors: function (errorMap, errorList) {            
        $.each(errorList, function () {
            var element = this.element;
            var labelText = $(element).prev('p').find("label").text();
            var error = this.message;

            errorSummaryList.append($("<li>").text(labelText + ": " + error));
            errorSummaryList.fadeIn('fast');
        });
        this.defaultShowErrors();
    },
    highlight: function (element, errorClass) {
        $(element).css({ "border": "1px solid #ff0000", "color": "#ff0000" });
    },
    unhighlight: function(element, errorClass) {
        $(element).css({ "border": "1px solid #555555", "color": "#555555" });
    },
    errorPlacement: function() {}
});

这会将错误放在我的errorSummaryList(这是一个无序列表)中,但由于它设置为将错误附加到摘要列表,因此如果/当用户时,它会一遍又一遍地添加相同的错误消息切换输入等。

我有一种奇怪的感觉,这不是使用jquery.validation插件创建摘要的正确方法。

有谁知道怎么做?

提前致谢:)

1 个答案:

答案 0 :(得分:1)

试试这个:

showErrors: function (errorMap, errorList) {    

    var errorLiArray = $.map(errorList, function(error){
        var labelText = $(error.element).prev('p').find("label").text();

        return "<li>" + labelText + ": " + error.message+ "</li>";
    });

    errorSummaryList.html(errorLiArray.join(''))

    errorSummaryList.fadeIn('fast');

    this.defaultShowErrors();
},