ASP.net MVC日期格式验证问题,客户端验证

本文关键字:验证 问题 客户端 格式 net MVC 日期 ASP | 更新日期: 2023-09-27 18:02:11

我想让法国日期格式dd/mm/yyyy与我的客户端验证工作。我尝试像这样使用DataAnnotation:

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

但我总是得到同样的问题Invalide Date Format,如果我把例如15/09/2015, 30/12/2018

ASP.net MVC日期格式验证问题,客户端验证

如果您正在使用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");

参见这个问题:

使用jQuery验证插件自定义日期格式

如果你也在使用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的日期拾取函数parseDate来检查输入的日期格式是否正确。

希望这对你有帮助!

乌鲁斯人