【发布时间】:2014-11-26 02:20:48
【问题描述】:
如何在不显眼的验证中覆盖默认错误消息?
我尝试使用 $.validator.unobtrusive.messages.dobvalidation 重置该验证类型的错误消息,但没有任何成功。
//DOB Validation
jQuery.validator.unobtrusive.adapters.add("dobvalidation", function (options) {
options.rules["dobvalidation"] = "true";
options.messages["dobvalidation"] = options.message;
});
jQuery.validator.addMethod("dobvalidation",
function (value, element, param) {
if (value.length > 3) {
var test = $(element).attr('data-val-dobvalidation-err1');
$.validator.unobtrusive.messages.dobvalidation = test; // this line of code is
not working
return false;
}
return true;
});
public class DateOfBirthFluentValidationPropertyValidator : FluentValidationPropertyValidator
{
public int? MinimumAge { get; set; }
public string DateFormat { get; set; }
public string InvalidDateFormatErrorMessage { get; set; }
public string YoungerThanMinimumErrorMessage { get; set; }
public DateOfBirthFluentValidationPropertyValidator(ModelMetadata metadata, ControllerContext controllerContext, PropertyRule rule, IPropertyValidator validator,
int? minimumAge = null, string dateFormat = null,string invalidDateFormatErrorMessage = null, string youngerThanMinimumAgeErrorMessage = null)
: base(metadata, controllerContext, rule, validator)
{
MinimumAge = minimumAge;
DateFormat = dateFormat;
InvalidDateFormatErrorMessage = invalidDateFormatErrorMessage;
YoungerThanMinimumErrorMessage = youngerThanMinimumAgeErrorMessage;
}
public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
{
var rule = new ModelClientValidationRule
{
ValidationType = "dobvalidation",
ErrorMessage = InvalidDateFormatErrorMessage
};
rule.ValidationParameters.Add("err1", InvalidDateFormatErrorMessage);
yield return rule;
}
}
【问题讨论】:
标签: c# jquery asp.net-mvc asp.net-mvc-4 fluentvalidation