サーバーから返されたエラーを表示するためにjqueryvalidateを使用しようとしています。
これを行うためにvalidator.showErrors()メソッドを使用しています。
ここの例のようにメソッドを動作させることができます。
var validator = $("#myform").validate();
validator.showErrors({"firstname": "I know that your firstname is Pete, Pete!"});
ただし、私が達成しようとしているのは、同じフィールドまたは異なるフィールドに対して2つ以上の検証エラーが発生することです。ドキュメントによると、これは可能です
指定されたメッセージを表示します。キーは要素の名前を参照する必要があり、構成されたエラー配置を使用して、それらの要素の値が表示されます。
引数:
エラー
Object<String, String>
入力名とメッセージの1つ以上のキー/値ペア。
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"});
ただし、それでも最初のエラーのみが表示されます。
複数のエラーを表示するために使用する正しい形式のアイデア