如何在不显眼的验证中覆盖默认错误消息?。
我尝试使用$ .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;
}
}
答案 0 :(得分:0)
虽然它是繁琐但通常不寻常的事情,因为所有这些都是通过JS文件控制的,它会覆盖显式设置的选项。您可以参考这些链接,这些链接可能会为您提供更多信息。