How do i override the default error message in unobtrusive validation?.
i tried to use $.validator.unobtrusive.messages.dobvalidation to the reset the error message for that validation type but without any success.
//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;
}
}