zoukankan      html  css  js  c++  java
  • 360浏览器下jquery.validate.unobtrusive的日期验证问题

    今天在招聘频道(job.cnblogs.com)遭遇这样一个问题——在360浏览器下,在一个表单验证中,虽然输入了有效的日期,却总是提示日期格式错误,见下图:

    而在Chrome/Safari/Firefox中都正常。

    这个表单验证用的是jquery.validate.js + jquery.validate.unobtrusive.js,验证代码是由ASP.NET MVC自动生成的。

    视图中的代码是这么写的:

    <label>截止日期<em>*</em></label>
    @Html.TextBoxFor(m => m.ExpireDate, new
                                        {
                                            @class = "date",
                                            Value = Model.ExpireDate.Value.ToString("yyyy-MM-dd")
                                        })
    @Html.ValidationMessageFor(m => m.ExpireDate)

    ViewModel中是这么声明的:

    [DataType(DataType.DateTime, ErrorMessageResourceType = typeof(CommonValidationMessage), 
        ErrorMessageResourceName = "DateTime")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "yyyy-MM-dd")]
    public DateTime? ExpireDate { get; set; }

    折腾半天无果。。。

    后来转念一想,何必纠结于日期类型,直接用正则表达式验证不是更简单吗?

    于是——

    视图中去掉class="date":

    <label>截止日期<em>*</em></label>
    @Html.TextBoxFor(m => m.ExpireDate, new
                                        {
                                            Value = Model.ExpireDate.Value.ToString("yyyy-MM-dd")
                                        })
    @Html.ValidationMessageFor(m => m.ExpireDate)

    ViewModel中的声明改为:

    [RegularExpression(@"dddd-dd-dd", ErrorMessage = "请输入正确的日期格式(yyyy-MM-dd)")]
    public DateTime? ExpireDate { get; set; } 

    问题解决。

  • 相关阅读:
    最方便建立进程池,线程池的方法
    python并发编程之多线程
    Cpython解释器支持的进程与线程
    进程与线程理论基础
    爬虫关于高性能方面
    Python中 and,or 的计算规则
    存储库之——MongoDB
    解析库之——beautifulsoup
    破解极验滑动验证码
    爬取拉勾网示例
  • 原文地址:https://www.cnblogs.com/dudu/p/jquery-validate-unobtrusive-date.html
Copyright © 2011-2022 走看看