2023-02-17 530
i有一个.NET MVC 5应用程序,该应用程序正在使用数据注释,实体 – 框架jQuery 2.1.3和jQuery UI 1.11.4.
当我使用英国格式” dd/mm/yyyy”呈现类型日期输入的编辑表单时;使用Google Chrome时出现以下错误消息:
指定的值’10/10/2001’不符合所需的格式’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()
中使用
问题可以来自类型=” date”.无论如何,那是我的情况.一旦将其更改为type =” text”.如果使用MVC包装器构建界面,则需要相应地替换或设置HTML属性.
您不需要任何jQuery或ASP功能来修复它.简单的JS会很好.
问题是浏览器需要格式yyyy-mm-dd.
和tolocalestring不允许日期以这种格式.因此,搜索后,我发现这是ISO格式,我们可以使用date().toisostring()以所需格式获取日期.
我使用切片方法来提取日期零件,因为date().toisostring()返回日期.
我的代码:
date: new Date().toISOString().slice(0, 10)
以上所述是小编给大家介绍的指定的值不符合要求的格式yyy-MM-dd,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://www.77isp.com/post/34270.html
=========================================
https://www.77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态