jqueryバリデーターで使用しているカスタム検証メソッドがあります。エラーメッセージを動的に生成しようとしています。
私はグーグルで検索しました、そして私が最も見た答えはこのstackoverflowの投稿に示されています。
しかし、自分で実装しようとするとうまくいきません。更新されたメッセージを単に無視し、元のメッセージを表示するだけです。
これがjquery.ready()関数内にある私のコードです。私は何が間違っているのですか?
注:「g$」はjqueryの省略形です。
var jsBlackoutDateMessage = "Tournaments cannot be scheduled on blackout dates.";
var jsBlackoutDateMessageFunction = function () {
return jsBlackoutDateMessage;
};
g$.validator.addMethod(
"notBlackoutDate",
function (value, element) {
var notBlackoutDate = true;
if (g$.inArray(value, jsBlackoutDates) != -1) {
notBlackoutDate = false;
}
if (notBlackoutDate == false) {
// year
var year = new Date(g$.trim(g$('#txtDate').val())).getFullYear();
var blackoutDatesForYear = jsBlackoutDates.filter(function (item) {
return endsWith(item, year.toString());
})[0];
var blackoutDatesForYearMessage = [];
blackoutDatesForYearMessage.push("Tournaments cannot be scheduled on blackout dates.");
blackoutDatesForYearMessage.push("<ul>");
g$.each(blackoutDatesForYear, function (key, value) {
blackoutDatesForYearMessage.push("<li>");
blackoutDatesForYearMessage.push(new Date(value).toLocaleDateString());
blackoutDatesForYearMessage.push("</li>");
});
blackoutDatesForYearMessage.push("</ul>");
jsBlackoutDateMessage = blackoutDatesForYearMessage.join("");
}
return this.optional(element) || notBlackoutDate;
},
jsBlackoutDateMessageFunction
);