MVC 4 でカスタム クライアント検証を作成しており、Firebug でブレーク ポイントを設定しています。この行には問題があります:
jQuery.validator.addMethod("greaterthanattrebutedate", function (value, element, param) {
return Date.parse(value) > Date.parse($(param).val());
});
最初の行の後、戻りの行には行きません。最初の行で d は定義されていません。
public string OtherPrpertyName { get; set; }
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule();
rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationType = "greaterthanattrebutedate"; rule.ValidationParameters.Add("other",OtherPrpertyName);
yield return rule;
}
jqueryコード
/// <reference path="jquery-1.6.2-vsdoc.js" />
/// <reference path="jquery.validate-vsdoc.js" />
/// <reference path="jquery.validate.unobtrusive.js" />
/// <reference path="jquery.validate.unobtrusive.min.js" />
$(document).ready(function () {
jQuery.validator.addMethod("greaterthanattrebutedate", function (value, element, param) {
// debugger;
return Date.parse(value) > Date.parse($(param).val());
});
});
jQuery.validator.unobtrusive.adapters.add("greaterthanattrebutedate", ["other"], function (options) {
options.rules["greaterthanattrebutedate"] = "#" + options.params.other;
options.messages["greaterthanattrebutedate"] = options.message;
});