【问题标题】:MVC JQuery unobtrusive validationMVC JQuery 不显眼的验证
【发布时间】: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


    【解决方案1】:

    虽然这很乏味,而且通常是不寻常的事情,因为所有这些都是通过 JS 文件控制的,并且它会覆盖显式设置的选项。您可以参考这些链接,这可能会让您对此有更多的了解。

    Override Unobtrusive JS Validation - 1

    Override Unobtrusive JS Validation - 2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 2012-06-18
      • 2016-02-19
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      相关资源
      最近更新 更多