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() {}
});

これにより、エラーが my 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 に答える