1

JQuery 検証プラグインを使用しています。次のように、カスタムの showError 関数を提供しています。

var errorHandler = function(errorMap, errorList) {
    console.log("count: " + this.errorList.length);

    var text = "";
    if (this.errorList.length > 0) {
      text = "Please correct the following errors: ";
      for (var i = 0; i < this.errorList.length; i++) {
        text += "* " + this.errorList[i].message.errorCode + "<br>";
      }
    }
    $('#oopDialogErrorContainer').html(text);
    this.defaultShowErrors();
}

私の問題は、フォーム内の既存のすべてのエラーにアクセスしたいということです。フォームには多くのフィールドがありますが、errorHandler が呼び出されると (この関数は showError オプションとして validate() に渡されます)、errorList には最後に検証されたフィールドからのエラーのみが含まれます。バリデータ オブジェクトを調べると、現在のすべてのエラーが格納されている場所はありません。これは自分で管理する必要がありますか? (そう見えますが、何かが足りないかもしれません。

4

1 に答える 1

0

http://docs.jquery.com/Plugins/Validation/validate#options

errorLabelContainer

検証時にこのコンテナーを表示または非表示にします。

「すべてのエラー ラベルは、errorContainer オプションとして渡されたセレクターによって指定された ID "messageBox" を持つ順序付けられていないリスト内に表示されます。すべてのエラー要素は、メッセージのリストを作成するために、li 要素内にラップされます。」

$("#myform").validate({
   errorLabelContainer: "#messageBox",
   wrapper: "li",
   submitHandler: function() { alert("Submitted!") }
})

と...

errorContainer

検証時にこのコンテナーを表示または非表示にします。

「エラーメッセージに追加のコンテナを使用します。エラーが発生すると、errorContainer として指定された要素はすべて表示され、非表示になります。ただし、エラーラベル自体は、errorLabelContainer として指定された要素に追加されます。ここでは順序付けされていないリストです。したがって、エラーラベルまた、li 要素にラップされます (ラッパー オプション)。"

$("#myform").validate({
   errorContainer: "#messageBox1, #messageBox2",
   errorLabelContainer: "#messageBox1 ul",
   wrapper: "li", debug:true,
   submitHandler: function() { alert("Submitted!") }
})
于 2012-09-27T20:37:26.427 に答える