ASP.net MVC dateFormat验证问题,客户端验证

时间:2014-05-07 23:54:27

标签: c# asp.net asp.net-mvc validation asp.net-mvc-4

我想让法语日期格式dd/mm/yyyy与我的客户端验证一起使用。我试着像这样使用DataAnnotation:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public Nullable<System.DateTime> DATE_NAISSANCE { get; set; }

但如果我举例Invalide Date Format15/09/2015,我总是会遇到问题30/12/2018 ... 如何解决?

2 个答案:

答案 0 :(得分:3)

如果您使用jQuery不引人注意的验证进行客户端验证,您可以添加验证器方法,如下所示:

$.validator.addMethod("date", function (value, element) {
    var bits = value.match(/([0-9]+)/gi), str;
    if (!bits)
        return this.optional(element) || false;
    str = bits[1] + '/' + bits[0] + '/' + bits[2];
    return this.optional(element) || !/Invalid|NaN/.test(new Date(str));
},
"Please enter a date in the format dd/mm/yyyy");

看到这个问题:

Custom date format with jQuery validation plugin

答案 1 :(得分:0)

我也在使用jQuery UI,你也可以使用下面的方法:

$.validator.addMethod('date',
                function (value, element, params) {
                    if (this.optional(element)) {
                        return true;
                    }

                    var ok = true;
                    try {
                        // first parameter is date format, change this as needed 
                        $.datepicker.parseDate('dd/mm/yyyy', value);
                    } catch (err) {
                        ok = false;
                    }
                    return ok;
                });

此示例使用jQuery UI的datepicker函数parseDate来检查输入的日期是否格式正确。

希望这有帮助!

乌罗什