我在asp.net mvc中设置验证日期格式Chrome时遇到问题,对于其他浏览器(如IE,Firefox)可以正常工作。
我已经在模型中定义了日期,如下面的代码:
[Required]
[Display(Name = "Data fi publicació")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime PublishingEndDate { get; set; }
在我看来:
@Html.TextBoxFor(model => model.PublishingEndDate)
@Html.ValidationMessageFor(model => model.PublishingEndDate)
问题似乎
@Html.ValidationMessageFor
用MM/dd/yyyy
格式验证了日期,但是我要用欧洲格式dd/MM/yyyy
验证日期。如何将默认区域性验证格式日期更改为dd/MM/yyyy
?谢谢你的帮助
最佳答案
最后,我发现问题仅影响Chrome,与IE,Firexfox完美兼容,似乎是Chrome漏洞,我在http://forums.asp.net/t/1729179.aspx/1中找到了解决方案
必须使用以下代码重写jquery的验证器方法:
$(document).ready(function () {
$('.calendarPicker').datepicker({ dateFormat: "dd/mm/yy" });
$.validator.addMethod('date',
function (value, element, params) {
if (this.optional(element)) {
return true;
}
var ok = true;
try {
$.datepicker.parseDate('dd/mm/yy', value);
}
catch (err) {
ok = false;
}
return ok;
});
});
关于asp.net-mvc - ASP.NET MVC设置验证日期格式在Chrome上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12845817/