2014-11-26 2 views
0

Как переопределить сообщение об ошибке по умолчанию в ненавязчивой проверке ?.MVC JQuery ненавязчивая проверка

Я попытался использовать $ .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

Хотя его утомительным и часто необычная вещь, чтобы сделать, так как все это управляется через файл JS и переопределяет параметры, заданные в явном виде. Вы можете сослаться на эти ссылки, которые могут дать вам больше информации об этом.

Override Unobtrusive JS Validation - 1

Override Unobtrusive JS Validation - 2

Смежные вопросы