【问题标题】:ASP.net MVC dateFormat Validation issue, Client side ValidationASP.net MVC dateFormat 验证问题,客户端验证
【发布时间】:2014-05-07 23:54:27
【问题描述】:

我想获得法语日期格式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/201530/12/2018... 如何解决?

【问题讨论】:

  • 如果将类型更改为DateTime 而不是DateTime?,问题是否得到解决? IE。不可为空?只是一个想法。
  • 我要改变什么?可以为空,因为我首先在 oracle 中使用 EF 数据库。

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


【解决方案1】:

如果您使用 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

【讨论】:

    【解决方案2】:

    我你也在使用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 来检查输入的日期是否格式正确。

    希望这会有所帮助!

    乌罗斯

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多