jquery – 指定的值不符合yyyy-MM-dd所需的格式

前端之家收集整理的这篇文章主要介绍了jquery – 指定的值不符合yyyy-MM-dd所需的格式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用Data Annotations,Entity-Framework Jquery 2.1.3和Jquery UI 1.11.4的.Net MVC 5应用程序。

当我使用英国格式“dd / MM / YYYY”呈现类型日​​期输入的编辑表单时;使用Google Chrome时会显示以下错误讯息:

The specified value ’10/10/2001′ does not conform to the required format,‘yyyy-MM-dd’. jquery-2.1.3.js:5317

模型

public class MyModel
{
    [Column(TypeName = "date"),DataType(DataType.Date),Display(Name = "My date")]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
    public string MyDate { get; set; }
}

标记

<input class="text-Box single-line" data-val="true" data-val-date="The field My date must be a date." id="MyDate" name="MyDate" type="date" value="10/10/2001" />

该值在输入控件中设置正确,但日期不会出现在浏览器中。我首先认为这是jQuery的一个问题,因为它出现了jQuery脚本文件,但是当在IE和Firefox中测试时,一切正常。

然后,我认为这是Chrome的区域设置,默认情况下,Chrome认为每个英文都在美国,我将区域设置改为英国,但仍然出现同样的问题。

一个简单的修复将是将我的模型中的格式更改为普遍,但对于英国用户来说,这是一个外星人。

有没有办法告诉chrome在“dd / MM / YYYY”中接受日期格式?

解决方法

HTML5日期选择器的规格说明日期必须格式为yyyy-MM-dd(ISO格式)。这意味着你的DisplayFormatAttribute必须是
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}",ApplyFormatInEditMode = true)]
public string MyDate { get; set; }

或者,您可以手动添加使用的格式

@Html.TextBoxFor(m => m.MyDate,"{0:yyyy-MM-dd}",new { @type = "date"  })

稍后的选项允许您将DataFormatString =“{0:dd / MM / yyyy}”)用于@ Html.DisplayFor()

猜你在找的jQuery相关文章