1

我正在尝试使用 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 插件创建摘要的正确方法。

有谁知道怎么做这个?

提前致谢 :)

4

1 回答 1

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();
},
于 2013-05-16T19:41:08.643 回答